Miroslav Holubec created PDFBOX-5920:
----------------------------------------

             Summary: PDType0Font return invalid space width
                 Key: PDFBOX-5920
                 URL: https://issues.apache.org/jira/browse/PDFBOX-5920
             Project: PDFBox
          Issue Type: Bug
          Components: FontBox
    Affects Versions: 3.0.3 PDFBox
            Reporter: Miroslav Holubec
         Attachments: texgyreheros-regular.ttf

WinAnsiEncoding supports not all available characters from the font. That is 
the reason why we moved to the workaround proposed by FAQ, also to use 
PDType0Font. Now we have realized, that returned space width from 
font.getSpaceWidth() returns invalid value.

{noformat}
 class FontWidthTest {

    @Test
    void pdType0FontTest() throws IOException {
        try (InputStream fontStream = 
FontWidthTest.class.getResourceAsStream("/texgyreheros-regular.ttf");
             PDDocument document = new PDDocument()) {
            PDFont font = PDType0Font.load(document, fontStream, false);
            assertEquals(20064.0, font.getStringWidth("The quick brown fox 
jumps over the lazy dog."));
            assertEquals(278.0, font.getSpaceWidth()); // FAIL: returns 584.0
        }
    }

    @Test
    void pdTrueTypeFontTest() throws IOException {
        try (InputStream fontStream = 
FontWidthTest.class.getResourceAsStream("/texgyreheros-regular.ttf");
             PDDocument document = new PDDocument()) {
            PDFont font = PDTrueTypeFont.load(document, fontStream, 
WinAnsiEncoding.INSTANCE);
            assertEquals(20064.0, font.getStringWidth("The quick brown fox 
jumps over the lazy dog."));
            assertEquals(278.0, font.getSpaceWidth());
        }
    }
}
{noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

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

Reply via email to