You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2022/03/17 19:42:46 UTC
svn commit: r1898994 - /pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java
Author: tilman
Date: Thu Mar 17 19:42:46 2022
New Revision: 1898994
URL: http://svn.apache.org/viewvc?rev=1898994&view=rev
Log:
PDFBOX-5390: improved test to increase code coverage
Modified:
pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java
Modified: pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java?rev=1898994&r1=1898993&r2=1898994&view=diff
==============================================================================
--- pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java (original)
+++ pdfbox/branches/2.0/tools/src/test/java/org/apache/pdfbox/tools/TestTextToPdf.java Thu Mar 17 19:42:46 2022
@@ -25,6 +25,7 @@ import junit.framework.TestCase;
import junit.framework.TestSuite;
import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.text.PDFTextStripper;
/**
@@ -62,41 +63,127 @@ public class TestTextToPdf extends TestC
pdfDoc.close();
}
- public void testWrap() throws IOException
+ /**
+ * Tests that the form feed is properly processed.
+ *
+ * @throws IOException
+ */
+ public void testFormFeed() throws IOException
{
TextToPDF pdfCreator = new TextToPDF();
- // single line
- StringReader reader = new StringReader("Lorem ipsum dolor sit amet, consetetur "
- + "sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore "
- + "magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo "
- + "dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est "
- + "Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet, consetetur sadipscing "
- + "elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam "
- + "erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea "
- + "rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum "
- + "dolor sit amet.");
- String expectedText =
- "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy "
- + "eirmod tempor invidunt ut labore et dolore\n"
- + "magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo "
- + "dolores et ea rebum. Stet clita kasd\n"
- + "gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem ipsum "
- + "dolor sit amet, consetetur sadipscing\n"
- + "elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam "
- + "erat, sed diam voluptua. At vero eos\n"
- + "et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, "
- + "no sea takimata sanctus est Lorem ipsum dolor\n"
- + "sit amet.";
ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ StringReader reader = new StringReader("First page\fSecond page");
PDDocument doc = pdfCreator.createPDFFromText(reader);
doc.save(baos);
doc.close();
+ doc = PDDocument.load(baos.toByteArray());
+ assertEquals(2, doc.getNumberOfPages());
+ PDFTextStripper stripper = new PDFTextStripper();
+ stripper.setStartPage(1);
+ stripper.setEndPage(1);
+ assertEquals("First page", stripper.getText(doc).trim());
+ stripper.setStartPage(2);
+ stripper.setEndPage(2);
+ assertEquals("Second page", stripper.getText(doc).trim());
+ doc.close();
+ }
+ /**
+ * Tests x overflow so that new line is used, and overflow on the y axis so new page must be
+ * created.
+ *
+ * @throws IOException
+ */
+ public void testOverflow() throws IOException
+ {
+ TextToPDF pdfCreator = new TextToPDF();
+ pdfCreator.setMediaBox(PDRectangle.A6);
+ StringReader reader = new StringReader("Lorem ipsum dolor sit amet, consetetur sadipscing "
+ + "elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam "
+ + "erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. "
+ + "Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. "
+ + "Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod "
+ + "tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. "
+ + "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd "
+ + "gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. Lorem "
+ + "ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod "
+ + "tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. "
+ + "At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd "
+ + "gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.\n"
+ + "\n"
+ + "Duis autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie "
+ + "consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et accumsan "
+ + "et iusto odio dignissim qui blandit praesent luptatum zzril delenit augue "
+ + "duis dolore te feugait nulla facilisi. Lorem ipsum dolor sit amet, "
+ + "consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut "
+ + "laoreet dolore magna aliquam erat volutpat.\n"
+ + "\n"
+ + "Ut wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper "
+ + "suscipit lobortis nisl ut aliquip ex ea commodo consequat. "
+ + "Duis autem vel eum iriure dolor in hendrerit in vulputate "
+ + "velit esse molestie consequat, vel illum dolore eu feugiat nulla "
+ + "facilisis at vero eros et accumsan et iusto odio dignissim qui blandit "
+ + "praesent luptatum zzril delenit augue duis dolore te feugait nulla facilisi.\n"
+ + "\n"
+ + "Nam liber tempor cum soluta nobis eleifend option congue nihil imperdiet doming "
+ + "id quod mazim placerat facer.");
+ String expectedPage1Text
+ = "Lorem ipsum dolor sit amet, consetetur\n"
+ + "sadipscing elitr, sed diam nonumy eirmod\n"
+ + "tempor invidunt ut labore et dolore magna\n"
+ + "aliquyam erat, sed diam voluptua. At vero eos et\n"
+ + "accusam et justo duo dolores et ea rebum. Stet\n"
+ + "clita kasd gubergren, no sea takimata sanctus\n"
+ + "est Lorem ipsum dolor sit amet. Lorem ipsum\n"
+ + "dolor sit amet, consetetur sadipscing elitr, sed\n"
+ + "diam nonumy eirmod tempor invidunt ut labore et\n"
+ + "dolore magna aliquyam erat, sed diam voluptua.\n"
+ + "At vero eos et accusam et justo duo dolores et\n"
+ + "ea rebum. Stet clita kasd gubergren, no sea\n"
+ + "takimata sanctus est Lorem ipsum dolor sit amet.\n"
+ + "Lorem ipsum dolor sit amet, consetetur\n"
+ + "sadipscing elitr, sed diam nonumy eirmod\n"
+ + "tempor invidunt ut labore et dolore magna\n"
+ + "aliquyam erat, sed diam voluptua. At vero eos et\n"
+ + "accusam et justo duo dolores et ea rebum. Stet\n"
+ + "clita kasd gubergren, no sea takimata sanctus\n"
+ + "est Lorem ipsum dolor sit amet.\n"
+ + "Duis autem vel eum iriure dolor in hendrerit in\n"
+ + "vulputate velit esse molestie consequat, vel illum\n"
+ + "dolore eu feugiat nulla facilisis at vero eros et\n"
+ + "accumsan et iusto odio dignissim qui blandit\n"
+ + "praesent luptatum zzril delenit augue duis dolore\n"
+ + "te feugait nulla facilisi. Lorem ipsum dolor sit\n"
+ + "amet, consectetuer adipiscing elit, sed diam\n"
+ + "nonummy nibh euismod tincidunt ut laoreet";
+ String expectedPage2Text
+ = "dolore magna aliquam erat volutpat.\n"
+ + "Ut wisi enim ad minim veniam, quis nostrud\n"
+ + "exerci tation ullamcorper suscipit lobortis nisl ut\n"
+ + "aliquip ex ea commodo consequat. Duis autem\n"
+ + "vel eum iriure dolor in hendrerit in vulputate velit\n"
+ + "esse molestie consequat, vel illum dolore eu\n"
+ + "feugiat nulla facilisis at vero eros et accumsan et\n"
+ + "iusto odio dignissim qui blandit praesent\n"
+ + "luptatum zzril delenit augue duis dolore te feugait\n"
+ + "nulla facilisi.\n"
+ + "Nam liber tempor cum soluta nobis eleifend\n"
+ + "option congue nihil imperdiet doming id quod\n"
+ + "mazim placerat facer.";
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ PDDocument doc = pdfCreator.createPDFFromText(reader);
+ doc.save(baos);
+ doc.close();
doc = PDDocument.load(baos.toByteArray());
+ assertEquals(2, doc.getNumberOfPages());
PDFTextStripper stripper = new PDFTextStripper();
stripper.setLineSeparator("\n");
- String text = stripper.getText(doc);
- assertEquals(expectedText, text.trim());
+ stripper.setStartPage(1);
+ stripper.setEndPage(1);
+ assertEquals(expectedPage1Text, stripper.getText(doc).trim());
+ stripper.setStartPage(2);
+ stripper.setEndPage(2);
+ assertEquals(expectedPage2Text, stripper.getText(doc).trim());
doc.close();
}