internal void ReadRegionPageTotalInfo(PageTotalInfo pageTotalInfo) { if (m_regionPageTotalInfoOffset <= 0) { return; } BinaryReader.BaseStream.Seek(m_regionPageTotalInfoOffset, SeekOrigin.Begin); if (BinaryReader.ReadBoolean()) { bool isCalculationDone = BinaryReader.ReadBoolean(); bool isCounting = BinaryReader.ReadBoolean(); int num = BinaryReader.ReadInt32(); List <KeyValuePair <int, string> > list = new List <KeyValuePair <int, string> >(num); for (int i = 0; i < num; i++) { int key = BinaryReader.ReadInt32(); string value = BinaryReader.ReadString(); list.Add(new KeyValuePair <int, string>(key, value)); } num = BinaryReader.ReadInt32(); List <KeyValuePair <int, int> > list2 = new List <KeyValuePair <int, int> >(num); for (int j = 0; j < num; j++) { int key2 = BinaryReader.ReadInt32(); int value2 = BinaryReader.ReadInt32(); list2.Add(new KeyValuePair <int, int>(key2, value2)); } pageTotalInfo.SetupPageTotalInfo(isCalculationDone, isCounting, list2, list); } }
internal PageContextCommon(string pageName, double pageHeight, bool registerEvents, bool consumeWhitespace, CreateAndRegisterStream createAndRegisterStream) { m_pageHeight = pageHeight; m_originalPageHeight = pageHeight; m_registerEvents = registerEvents; m_consumeWhitespace = consumeWhitespace; m_sharedItemSizes = new Hashtable(); m_sharedEdgeItemSizes = new Hashtable(); m_sharedRenderItemSizes = new Hashtable(); m_sharedRenderEdgeItemSizes = new Hashtable(); m_sharedRenderRepeatItemSizes = new Hashtable(); m_registeredStreamNames = new Hashtable(); m_registeredPBIgnored = new Hashtable(); m_createAndRegisterStream = createAndRegisterStream; m_pageTotalInfo = new PageTotalInfo(pageName); }
internal void SavePaginationMetadata(bool reportDone, PageTotalInfo pageTotalInfo) { if (m_stream == null || m_reportDone || !m_newPagesMetadata) { return; } m_reportDone = reportDone; BinaryWriter.BaseStream.Seek(m_offsetLastPage, SeekOrigin.Begin); BinaryWriter.Write(m_reportDone); BinaryWriter.Write(m_metadataPages.Count); for (int i = 0; i < m_metadataPages.Count; i++) { BinaryWriter.Write(m_metadataPages[i]); } m_regionPageTotalInfoOffset = BinaryWriter.BaseStream.Position; if (pageTotalInfo == null) { BinaryWriter.Write(value: false); } else { BinaryWriter.Write(value: true); BinaryWriter.Write(pageTotalInfo.CalculationDone); BinaryWriter.Write(pageTotalInfo.IsCounting); List <KeyValuePair <int, string> > pageNameList = pageTotalInfo.GetPageNameList(); BinaryWriter.Write(pageNameList.Count); foreach (KeyValuePair <int, string> item in pageNameList) { BinaryWriter.Write(item.Key); BinaryWriter.Write(item.Value); } List <KeyValuePair <int, int> > pageNumberList = pageTotalInfo.GetPageNumberList(); BinaryWriter.Write(pageNumberList.Count); foreach (KeyValuePair <int, int> item2 in pageNumberList) { BinaryWriter.Write(item2.Key); BinaryWriter.Write(item2.Value); } } BinaryWriter.Write(m_regionPageTotalInfoOffset); BinaryWriter.Flush(); m_newPagesMetadata = false; }