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()); }
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_" )); }
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_" )); }
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_" )); }
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_" )); }
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_" )); }
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_" )); }
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_" )); }