/// <summary>Processes a page break "before" property.</summary> /// <param name="context">the processor context</param> /// <param name="parentTagWorker">the parent tag worker</param> /// <param name="childElement">the child element</param> /// <param name="childTagWorker">the child tag worker</param> public static void AddPageBreakElementBefore(ProcessorContext context, ITagWorker parentTagWorker, IElementNode childElement, ITagWorker childTagWorker) { /* Handles left, right, always cases. Avoid is handled at different time along with other css property application */ if (IsEligibleForBreakBeforeAfter(parentTagWorker, childElement, childTagWorker)) { String pageBreakBeforeVal = childElement.GetStyles().Get(CssConstants.PAGE_BREAK_BEFORE); HtmlPageBreak breakBefore = CreateHtmlPageBreak(pageBreakBeforeVal); if (breakBefore != null) { parentTagWorker.ProcessTagChild(new PageBreakApplierUtil.HtmlPageBreakWorker(breakBefore), context); } } }
/// <summary> /// Creates an /// <see cref="iText.Html2pdf.Attach.Impl.Layout.HtmlPageBreak"/> /// instance. /// </summary> /// <param name="pageBreakVal">the page break value</param> /// <returns> /// the /// <see cref="iText.Html2pdf.Attach.Impl.Layout.HtmlPageBreak"/> /// instance /// </returns> private static HtmlPageBreak CreateHtmlPageBreak(String pageBreakVal) { HtmlPageBreak pageBreak = null; if (CssConstants.ALWAYS.Equals(pageBreakVal)) { pageBreak = new HtmlPageBreak(HtmlPageBreakType.ALWAYS); } else { if (CssConstants.LEFT.Equals(pageBreakVal)) { pageBreak = new HtmlPageBreak(HtmlPageBreakType.LEFT); } else { if (CssConstants.RIGHT.Equals(pageBreakVal)) { pageBreak = new HtmlPageBreak(HtmlPageBreakType.RIGHT); } } } return(pageBreak); }
/// <summary> /// Creates a new /// <see cref="HtmlPageBreakWorker"/> /// instance. /// </summary> /// <param name="pageBreak">the page break</param> internal HtmlPageBreakWorker(HtmlPageBreak pageBreak) { this.pageBreak = pageBreak; }