/// <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);
 }