示例#1
0
        public virtual void OrphansWidowsAwareAndDirectLayoutProduceSameResult()
        {
            PdfDocument pdfDocument                  = new PdfDocument(new PdfWriter(new MemoryStream()));
            Document    document                     = new Document(pdfDocument);
            int         minAllowedWidows             = 3;
            int         overflowedToNextPageLinesNum = 5;
            Paragraph   widowsParagraph              = new Paragraph(OrphansWidowsTestUtil.PARA_TEXT);
            IRenderer   paragraphRenderer            = widowsParagraph.CreateRendererSubTree().SetParent(document.GetRenderer());
            Rectangle   effectiveArea                = document.GetPageEffectiveArea(pdfDocument.GetDefaultPageSize());
            float       linesHeight                  = OrphansWidowsTestUtil.CalculateHeightForLinesNum(document, widowsParagraph, effectiveArea
                                                                                                        .GetWidth(), overflowedToNextPageLinesNum, false);
            Rectangle layoutAreaRect = new Rectangle(effectiveArea).SetHeight(linesHeight + OrphansWidowsTestUtil.LINES_SPACE_EPS
                                                                              );
            LayoutContext          layoutContext = new LayoutContext(new LayoutArea(1, layoutAreaRect));
            LayoutResult           noWidowsControlLayoutResult = paragraphRenderer.Layout(layoutContext);
            ParagraphWidowsControl widowsControl = new ParagraphWidowsControl(minAllowedWidows, 1, false);

            widowsParagraph.SetWidowsControl(widowsControl);
            LayoutResult widowsControlLayoutResult = paragraphRenderer.Layout(layoutContext);

            // toString() comparison is used since it contains report on status, areaBreak and occupiedArea
            NUnit.Framework.Assert.AreEqual(noWidowsControlLayoutResult.ToString(), widowsControlLayoutResult.ToString
                                                ());
            ParagraphRenderer firstSplitRenderer  = (ParagraphRenderer)noWidowsControlLayoutResult.GetSplitRenderer();
            ParagraphRenderer secondSplitRenderer = (ParagraphRenderer)widowsControlLayoutResult.GetSplitRenderer();

            NUnit.Framework.Assert.IsNotNull(firstSplitRenderer);
            NUnit.Framework.Assert.IsNotNull(secondSplitRenderer);
            NUnit.Framework.Assert.AreEqual(firstSplitRenderer.ToString(), secondSplitRenderer.ToString());
            NUnit.Framework.Assert.IsNotNull(noWidowsControlLayoutResult.GetOverflowRenderer());
            NUnit.Framework.Assert.IsNotNull(widowsControlLayoutResult.GetOverflowRenderer());
        }
示例#2
0
        private static void RunOrphansWidowsBiggerThanLinesCount(String fileName, bool orphans, bool singleLine)
        {
            String outPdf = destinationFolder + fileName + ".pdf";
            String cmpPdf = sourceFolder + "cmp_" + fileName + ".pdf";

            OrphansWidowsTestUtil.ProduceOrphansWidowsBiggerThanLinesCountTestCase(outPdf, orphans, singleLine);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#3
0
        private static void RunFloatingDiv(String fileName, bool orphans)
        {
            String outPdf = destinationFolder + fileName + ".pdf";
            String cmpPdf = sourceFolder + "cmp_" + fileName + ".pdf";

            OrphansWidowsTestUtil.ProduceOrphansWidowsFloatingDivTestCase(outPdf, orphans);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#4
0
        private static void RunUnexpectedWidthOfNextAreaTest(String fileName, bool wide)
        {
            String outPdf = destinationFolder + fileName + ".pdf";
            String cmpPdf = sourceFolder + "cmp_" + fileName + ".pdf";

            OrphansWidowsTestUtil.ProduceOrphansWidowsUnexpectedWidthOfNextAreaTestCase(outPdf, wide);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#5
0
        private static void RunTestOnPage(String testName, Paragraph testPara, bool orphans)
        {
            String outPdf    = destinationFolder + testName + ".pdf";
            String cmpPdf    = sourceFolder + "cmp_" + testName + ".pdf";
            int    linesLeft = 1;

            OrphansWidowsTestUtil.ProduceOrphansOrWidowsTestCase(outPdf, linesLeft, orphans, testPara);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#6
0
        private static void RunHugeInlineImage(String fileName, bool orphans)
        {
            String outPdf    = destinationFolder + fileName + ".pdf";
            String cmpPdf    = sourceFolder + "cmp_" + fileName + ".pdf";
            String imagePath = sourceFolder + "imageA4.png";

            OrphansWidowsTestUtil.ProduceOrphansWidowsHugeInlineImageTestCase(outPdf, imagePath, orphans);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#7
0
        private static void RunOrphansAndWidows(String testName)
        {
            String    outPdf   = destinationFolder + testName + ".pdf";
            String    cmpPdf   = sourceFolder + "cmp_" + testName + ".pdf";
            Paragraph testPara = new Paragraph();

            testPara.SetOrphansControl(new ParagraphOrphansControl(3)).SetWidowsControl(new ParagraphWidowsControl(3,
                                                                                                                   1, true));
            OrphansWidowsTestUtil.ProduceOrphansAndWidowsTestCase(outPdf, testPara);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }
示例#8
0
        private static void RunCustomParagraphAndRendererTest(String fileName, bool orphans)
        {
            String outPdf = destinationFolder + fileName + ".pdf";
            String cmpPdf = sourceFolder + "cmp_" + fileName + ".pdf";

            OrphansWidowsTest.CustomParagraph customParagraph = new OrphansWidowsTest.CustomParagraph();
            if (orphans)
            {
                customParagraph.SetOrphansControl(new ParagraphOrphansControl(3));
            }
            else
            {
                customParagraph.SetWidowsControl(new ParagraphWidowsControl(3, 1, false));
            }
            OrphansWidowsTestUtil.ProduceOrphansWidowsTestCase(outPdf, 2, orphans, customParagraph, false);
            NUnit.Framework.Assert.IsNull(new CompareTool().CompareByContent(outPdf, cmpPdf, destinationFolder, "diff_"
                                                                             ));
        }