[ 
https://issues.apache.org/jira/browse/PDFBOX-3457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15584362#comment-15584362
 ] 

John Hewson edited comment on PDFBOX-3457 at 10/18/16 6:30 AM:
---------------------------------------------------------------

{quote}
If every character is rendered separately the width of the font dictionary 
doesn't matter as every character comes with its own position, so that there is 
no need to compensate any width difference.
{quote}

I don't think that's right, because while the glyphs would be in the correct 
position, (if they were wider in the font than the /Widths) they would look 
like this:

!overlapping.png!

Update: The file from PDFBOX-870, where the stretching feature was initially 
added confirms this. It uses individual glyph positions but requires stretching 
to render correctly.


was (Author: jahewson):
{quote}
If every character is rendered separately the width of the font dictionary 
doesn't matter as every character comes with its own position, so that there is 
no need to compensate any width difference.
{quote}

I don't think that's right, because while the glyphs would be in the correct 
position, (if they were wider in the font than the /Widths) they would look 
like this:

!overlapping.png!

> Glyphs rendered in wrong width
> ------------------------------
>
>                 Key: PDFBOX-3457
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3457
>             Project: PDFBox
>          Issue Type: Bug
>    Affects Versions: 2.0.2, 2.0.3, 2.1.0
>            Reporter: Tilman Hausherr
>         Attachments: PDFJS-5550.pdf, PDFJS-7523.pdf, 
> gs-bugzilla693663-p9.pdf, overlapping.png
>
>
> Fonts rendered in wrong size. The cause is related to wrong values in the 
> /WIDTHS table and this code in PageDrawer:
> {code}
>             // stretch non-embedded glyph if it does not match the width 
> contained in the PDF
>             if (!font.isEmbedded())
>             {
>                 float fontWidth = font.getWidthFromFont(code);
>                 if (fontWidth > 0 && // ignore spaces
>                         Math.abs(fontWidth - displacement.getX() * 1000) > 
> 0.0001)
>                 {
>                     float pdfWidth = displacement.getX() * 1000;
>                     at.scale(pdfWidth / fontWidth, 1);
>                 }
>             }
> {code}
> I suspect that there must be another condition to skip the stretching, but I 
> didn't find out which one.



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

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

Reply via email to