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.