THausherr commented on PR #203:
URL: https://github.com/apache/pdfbox/pull/203#issuecomment-2691116655

   This test passes:
   ```
   @Test
   void testEmbeddedFontWithZeroWidthChars() throws IOException
   {
       String text = "AAA\u200CBBB";
       ByteArrayOutputStream baos = new ByteArrayOutputStream();
       int code;
       try (PDDocument document = new PDDocument())
       {
           PDPage page = new PDPage();
           document.addPage(page);
           InputStream input = PDFont.class.getResourceAsStream(
                   
"/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf");
           PDType0Font font = PDType0Font.load(document, input);
           byte[] encoded = font.encode('\u200C');
           assertEquals(2, encoded.length);
           code = ((encoded[0] & 0xFF) << 8) | (encoded[1] & 0xFF);
           try (PDPageContentStream stream = new PDPageContentStream(document, 
page))
           {
               stream.beginText();
               stream.setFont(font, 20);
               stream.newLineAtOffset(50, 600);
               stream.showText(text);
               stream.endText();
           }
           document.save(baos);
       }
       try (PDDocument document = Loader.loadPDF(baos.toByteArray()))
       {
           // verify that the text still contains zero-width characters
           PDFTextStripper stripper = new PDFTextStripper();
           String extractedText = stripper.getText(document);
           assertEquals(text, extractedText.trim());
   
           // verify that the zero-width characters are invisible
           PDPage page = document.getPage(0);
           PDResources resources = page.getResources();
           Iterable< COSName > fontNames = resources.getFontNames();
           COSName fontName = fontNames.iterator().next();
           PDType0Font font = (PDType0Font) resources.getFont(fontName);
           assertEquals(0, font.getWidth(code));
           assertEquals(0, font.getWidthFromFont(code));
           assertTrue(font.getPath(code).getBounds2D().isEmpty());
       }
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@pdfbox.apache.org
For additional commands, e-mail: dev-h...@pdfbox.apache.org

Reply via email to