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 2018/08/30 16:53:33 UTC

svn commit: r1839691 - /pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java

Author: tilman
Date: Thu Aug 30 16:53:32 2018
New Revision: 1839691

URL: http://svn.apache.org/viewvc?rev=1839691&view=rev
Log:
PDFBOX-4302: add test for corner case inspired by code from Atsushi Doita

Modified:
    pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java

Modified: pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java?rev=1839691&r1=1839690&r2=1839691&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java (original)
+++ pdfbox/trunk/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java Thu Aug 30 16:53:32 2018
@@ -218,6 +218,42 @@ public class TestFontEmbedding extends T
         //assertEquals(expectedExtractedtext, extracted.replaceAll("\r", "").trim());
     }
 
+    /**
+     * Test corner case of PDFBOX-4302.
+     *
+     * @throws java.io.IOException
+     */
+    public void testMaxEntries() throws IOException
+    {
+        File file;
+        String text;
+        text = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん" +
+                "アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲン" +
+                "12345678";
+        assertEquals(ToUnicodeWriter.MAX_ENTRIES_PER_OPERATOR, text.length());
+        try (PDDocument document = new PDDocument())
+        {
+            PDPage page = new PDPage(PDRectangle.A0);
+            document.addPage(page);
+            File ipafont = new File("target/fonts/ipag00303", "ipag.ttf");
+            PDType0Font font = PDType0Font.load(document, ipafont);
+            try (PDPageContentStream contentStream = new PDPageContentStream(document, page))
+            {
+                contentStream.beginText();
+                contentStream.setFont(font, 20);
+                contentStream.newLineAtOffset(50, 3000);
+                contentStream.showText(text);
+                contentStream.endText();
+            }
+            file = new File(OUT_DIR, "PDFBOX-4302-test.pdf");
+            document.save(file);
+        }
+
+        // check that the extracted text matches what we wrote
+        String extracted = getUnicodeText(file);
+        assertEquals(text, extracted.trim());
+    }
+
     private void validateCIDFontType2(boolean useSubset) throws IOException
     {
         String text;