public virtual void ShouldAttemptTrimLastPageTest()
        {
            PdfDocument          pdfDocument      = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
            Document             document         = new Document(pdfDocument);
            HtmlDocumentRenderer documentRenderer = new HtmlDocumentRenderer(document, false);

            document.SetRenderer(documentRenderer);
            pdfDocument.AddNewPage();
            NUnit.Framework.Assert.AreEqual(1, pdfDocument.GetNumberOfPages());
            // For one-page documents it does not make sense to attempt to trim last page
            NUnit.Framework.Assert.IsFalse(documentRenderer.ShouldAttemptTrimLastPage());
            pdfDocument.AddNewPage();
            NUnit.Framework.Assert.AreEqual(2, pdfDocument.GetNumberOfPages());
            // If there are more than one page, we try to trim last page
            NUnit.Framework.Assert.IsTrue(documentRenderer.ShouldAttemptTrimLastPage());
        }
        public virtual void TrimLastPageIfNecessaryTest()
        {
            PdfDocument          pdfDocument      = new PdfDocument(new PdfWriter(new ByteArrayOutputStream()));
            Document             document         = new Document(pdfDocument);
            HtmlDocumentRenderer documentRenderer = new HtmlDocumentRenderer(document, false);

            document.SetRenderer(documentRenderer);
            pdfDocument.AddNewPage();
            pdfDocument.AddNewPage();
            new PdfCanvas(pdfDocument.GetLastPage()).MoveTo(10, 10).LineTo(20, 20).Stroke();
            pdfDocument.AddNewPage();
            NUnit.Framework.Assert.AreEqual(3, pdfDocument.GetNumberOfPages());
            documentRenderer.TrimLastPageIfNecessary();
            NUnit.Framework.Assert.AreEqual(2, pdfDocument.GetNumberOfPages());
            documentRenderer.TrimLastPageIfNecessary();
            NUnit.Framework.Assert.AreEqual(2, pdfDocument.GetNumberOfPages());
        }
 internal virtual HtmlDocumentRenderer.PageMarginBoxesDrawingHandler SetHtmlDocumentRenderer(HtmlDocumentRenderer
                                                                                             htmlDocumentRenderer)
 {
     this.htmlDocumentRenderer = htmlDocumentRenderer;
     return(this);
 }
 /// <summary>Constructor for HtmlBodyStylesApplierHandler.</summary>
 /// <param name="htmlDocumentRenderer">
 ///
 /// <see cref="HtmlDocumentRenderer"/>
 /// </param>
 /// <param name="pageStylesPropertiesMap">
 ///
 /// <see cref="PageStylesProperties"/>
 /// map that contains styles for html and body elements
 /// </param>
 public HtmlBodyStylesApplierHandler(HtmlDocumentRenderer htmlDocumentRenderer, IDictionary <int, HtmlBodyStylesApplierHandler.PageStylesProperties
                                                                                             > pageStylesPropertiesMap)
 {
     this.htmlDocumentRenderer    = htmlDocumentRenderer;
     this.pageStylesPropertiesMap = pageStylesPropertiesMap;
 }