/// <summary>Instantiates a new page context processor.</summary> /// <param name="properties">the page context properties</param> /// <param name="context">the processor context</param> /// <param name="defaultPageSize">the default page size</param> /// <param name="defaultPageMargins">the default page margins</param> internal PageContextProcessor(PageContextProperties properties, ProcessorContext context, PageSize defaultPageSize , float[] defaultPageMargins) { this.properties = properties; this.context = context; Reset(defaultPageSize, defaultPageMargins); }
/// <summary>Processes the page rules.</summary> /// <param name="rootNode">the root node</param> /// <param name="cssResolver">the CSS resolver</param> /// <param name="context">the processor context</param> public virtual void ProcessPageRules(INode rootNode, ICssResolver cssResolver, ProcessorContext context) { PageContextProperties firstPageProps = PageContextProperties.Resolve(rootNode, cssResolver, context.GetCssContext (), PageContextConstants.FIRST, PageContextConstants.RIGHT); // TODO in documents with set to rtl on root document, first page is considered as left PageContextProperties leftPageProps = PageContextProperties.Resolve(rootNode, cssResolver, context.GetCssContext (), PageContextConstants.LEFT); PageContextProperties rightPageProps = PageContextProperties.Resolve(rootNode, cssResolver, context.GetCssContext (), PageContextConstants.RIGHT); PageSize defaultPageSize = document.GetPdfDocument().GetDefaultPageSize(); float[] defaultPageMargins = new float[] { document.GetTopMargin(), document.GetRightMargin(), document.GetBottomMargin (), document.GetRightMargin() }; firstPageProc = new PageContextProcessor(firstPageProps, context, defaultPageSize, defaultPageMargins); leftPageProc = new PageContextProcessor(leftPageProps, context, defaultPageSize, defaultPageMargins); rightPageProc = new PageContextProcessor(rightPageProps, context, defaultPageSize, defaultPageMargins); handler = new HtmlDocumentRenderer.PageMarginBoxesDrawingHandler().SetHtmlDocumentRenderer(this); document.GetPdfDocument().AddEventHandler(PdfDocumentEvent.END_PAGE, handler); }