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 2023/12/13 10:08:21 UTC

svn commit: r1914625 - in /pdfbox/branches/3.0/pdfbox/src/test: java/org/apache/pdfbox/pdmodel/font/ resources/org/apache/pdfbox/ttf/

Author: tilman
Date: Wed Dec 13 10:08:20 2023
New Revision: 1914625

URL: http://svn.apache.org/viewvc?rev=1914625&view=rev
Log:
PDFBOX-5729: integrate pdfbox subproject changes for Devanagari and Gujarati by JAVAUSER to 3.0

Added:
    pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png
      - copied, changed from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png
    pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png
      - copied, changed from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png
    pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Lohit-Devanagari.ttf
      - copied unchanged from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Lohit-Devanagari.ttf
    pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Lohit-Gujarati.ttf
      - copied unchanged from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Lohit-Gujarati.ttf
Modified:
    pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java

Modified: pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java?rev=1914625&r1=1914624&r2=1914625&view=diff
==============================================================================
--- pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java (original)
+++ pdfbox/branches/3.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/TestFontEmbedding.java Wed Dec 13 10:08:20 2023
@@ -245,6 +245,107 @@ class TestFontEmbedding
         //assertEquals(expectedExtractedtext, extracted.replaceAll("\r", "").trim());
     }
 
+    @Test
+    void testDevanagari() throws IOException
+    {
+        String DEVANAGARI_TEXT_0 = "प्रदेश ग्रामीण व्यवसायिक, लक्ष्मिपति, लक्षित, मक्खि उपलब्धि, प्रसिद्धि";
+        String DEVANAGARI_TEXT_1 = "क्षत्रिय ज्ञानी का शृंगार";
+        String DEVANAGARI_TEXT_2 = "खुर्रम खर्चें ट्रक उद्गम लक्ष्मिपति ग्रह शृंगार हृदय लाड़ु विट्ठल टट्टू बुद्धू ढर्रा भ़ुर्ता कम्प्युटर";
+        String DEVANAGARI_TEXT_3 = "लक्ष्मिपति रविवार को कम्प्यूटर पर कविता साँईं का नाम लेकर पढ़ता है";
+
+        String expectedExtractedtext = DEVANAGARI_TEXT_0 + "\n" + DEVANAGARI_TEXT_1 + "\n" + 
+                DEVANAGARI_TEXT_2 + "\n" + DEVANAGARI_TEXT_3;
+        File pdf = new File(OUT_DIR, "Devanagari.pdf");
+
+        try (PDDocument document = new PDDocument())
+        {
+            PDPage page = new PDPage(PDRectangle.A4);
+            document.addPage(page);
+            PDFont font = PDType0Font.load(document, 
+                    this.getClass().getResourceAsStream("/org/apache/pdfbox/ttf/Lohit-Devanagari.ttf"));
+
+            try (PDPageContentStream contentStream = new PDPageContentStream(document, page))
+            {
+                contentStream.beginText();
+                contentStream.setFont(font, 18);
+                contentStream.newLineAtOffset(10, 750);
+                contentStream.showText(DEVANAGARI_TEXT_0);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(DEVANAGARI_TEXT_1);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(DEVANAGARI_TEXT_2);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(DEVANAGARI_TEXT_3);
+                contentStream.endText();
+            }
+
+            document.save(pdf);
+        }
+
+        File IN_DIR = new File("src/test/resources/org/apache/pdfbox/ttf");
+ 
+        // compare rendering
+        if (!TestPDFToImage.doTestFile(pdf, IN_DIR.getAbsolutePath(), OUT_DIR.getAbsolutePath()))
+        {
+            // don't fail, rendering is different on different systems, result must be viewed manually
+            System.err.println("Rendering of " + pdf + " failed or is not identical to expected rendering in " + IN_DIR + " directory");
+        }
+
+        // Check text extraction
+        String extracted = getUnicodeText(pdf);
+        //assertEquals(expectedExtractedtext, extracted.replaceAll("\r", "").trim());
+    }
+
+    @Test
+    void testGujarati() throws IOException
+    {
+        String GUJARATI_TEXT_0 = "દરેક વ્યક્તિને શિક્ષણનો અધિકાર છે";
+        String GUJARATI_TEXT_1 = "શિક્ષિત માણસ વિવિધ પ્રકારના કાર્ય પરિલક્ષિત કરી શકે";
+        String GUJARATI_TEXT_2 = "ટ્રક ગૃહ પ્રસિદ્ધિ શ્રમિક અગ્નિ ઠક્કર ઉત્પલ કર્યે";
+        String GUJARATI_TEXT_3 = "જ્ઞાની બુદ્ધિમાન ક્રમ ગ્રામ કુર્સી ટ્રુ";
+
+        String expectedExtractedtext = GUJARATI_TEXT_0 + "\n" + GUJARATI_TEXT_1 + "\n" + GUJARATI_TEXT_2 + "\n" + GUJARATI_TEXT_3;
+        File pdf = new File(OUT_DIR, "Gujarati.pdf");
+
+        try (PDDocument document = new PDDocument())
+        {
+            PDPage page = new PDPage(PDRectangle.A4);
+            document.addPage(page);
+            PDFont font = PDType0Font.load(document, 
+                    this.getClass().getResourceAsStream("/org/apache/pdfbox/ttf/Lohit-Gujarati.ttf"));
+
+            try (PDPageContentStream contentStream = new PDPageContentStream(document, page))
+            {
+                contentStream.beginText();
+                contentStream.setFont(font, 25);
+                contentStream.newLineAtOffset(10, 750);
+                contentStream.showText(GUJARATI_TEXT_0);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(GUJARATI_TEXT_1);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(GUJARATI_TEXT_2);
+                contentStream.newLineAtOffset(0, -30);
+                contentStream.showText(GUJARATI_TEXT_3);
+                contentStream.endText();
+            }
+
+            document.save(pdf);
+        }
+
+        File IN_DIR = new File("src/test/resources/org/apache/pdfbox/ttf");
+ 
+        // compare rendering
+        if (!TestPDFToImage.doTestFile(pdf, IN_DIR.getAbsolutePath(), OUT_DIR.getAbsolutePath()))
+        {
+            // don't fail, rendering is different on different systems, result must be viewed manually
+            System.err.println("Rendering of " + pdf + " failed or is not identical to expected rendering in " + IN_DIR + " directory");
+        }
+
+        // Check text extraction
+        String extracted = getUnicodeText(pdf);
+        //assertEquals(expectedExtractedtext, extracted.replaceAll("\r", "").trim());
+    }
+
     /**
      * Test corner case of PDFBOX-4302.
      *

Copied: pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png (from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png)
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png?p2=pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png&p1=pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Devanagari.pdf-1.png&r1=1914620&r2=1914625&rev=1914625&view=diff
==============================================================================
Binary files - no diff available.

Copied: pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png (from r1914620, pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png)
URL: http://svn.apache.org/viewvc/pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png?p2=pdfbox/branches/3.0/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png&p1=pdfbox/trunk/pdfbox/src/test/resources/org/apache/pdfbox/ttf/Gujarati.pdf-1.png&r1=1914620&r2=1914625&rev=1914625&view=diff
==============================================================================
Binary files - no diff available.