[ 
https://issues.apache.org/jira/browse/PDFBOX-3617?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Roman resolved PDFBOX-3617.
---------------------------
    Resolution: Invalid

> Incorrect font width on verical text
> ------------------------------------
>
>                 Key: PDFBOX-3617
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3617
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 1.8.12, 2.0.3
>            Reporter: Roman
>         Attachments: 6L.pdf
>
>
> On the attached document we are extracting glyph coordinates as shown in code 
> snippet below. The "w" variable is used to calculate the width of glyph. It 
> is returning wrong value. 
> The document contains "........KKKKWWWW!!!!0000" string. For dots it returns 
> too big value, but for "K" characters it returns to small value.
> {code}
> public class Extractor extends PDFTextStripper {
> //<...CUT...>
>       protected void writePage() throws IOException {
>               for (List<TextPosition> textList : charactersByArticle) { 
> //charactersByArticle was inherited from base class
>                       Iterator textIter = textList.iterator();
> //<...CUT...>
>                       while (textIter.hasNext()) {
>                               TextPosition position = (TextPosition) 
> textIter.next();
> //<...CUT...>
> PDFont font = position.getFont();
> //<...CUT...>
>         float w;
>         try {
>             if (font instanceof PDType0Font && ((PDType0Font) 
> font).getDescendantFont() == null) {
> //in 1.8.12 code flows here
>                 Method method = 
> font.getClass().getDeclaredMethod("getDescendantFonts");
>                 method.setAccessible(true);
>                 COSArray arr = (COSArray) method.invoke(font);
>                 w = PDFontFactory.createFont((COSDictionary) ((COSObject) 
> arr.get(0)).getObject()).getFontWidth(c);
>             } else {
> //in 2.0.3 code flows here, but still, with the same result. Incorrect values 
> are returned.
>                 w = font.getFontWidth(c);
>             }
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to