using System; using iTextSharp.text.pdf; using PDFPatcher.Model; namespace PDFPatcher.Processor { sealed class PageProcessorContext { /// 正在处理的 PDF 文档。 public PdfReader Pdf { get; } /// 正在处理的页码。 public int PageNumber { get; } /// 标记页面内容是否已被更改。 public bool IsPageContentModified { get; set; } PdfDictionary _Page; /// 获取正在处理的页面。 public PdfDictionary Page { get { if (_Page == null) { _Page = Pdf.GetPageN(PageNumber); } return _Page; } } PdfPageCommandProcessor _processor; /// 获取正在处理的页面指令集合。 public Model.IPdfPageCommandContainer PageCommands { get { if (_processor == null) { _processor = new PdfPageCommandProcessor(); var resources = Page.Locate(PdfName.RESOURCES); _processor.ProcessContent(PdfReader.GetPageContent(Page), resources); } return _processor; } } public PageProcessorContext(PdfReader pdf, int pageNumber) { Pdf = pdf; PageNumber = pageNumber; } /// 写入页面指令到当前处理的页面。 internal void WritePageCommands() { _processor.WritePdfCommands(Pdf, PageNumber); } //internal void UpdateContentBytes () { // if (_ContentBytes == null) { // return; // } // Pdf.SafeSetPageContent (PageNumber, _ContentBytes); // Pdf.ResetReleasePage (); //} } }