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

Andreas Lehmkühler commented on PDFBOX-1501:
--------------------------------------------

Sounds like an PDFBox issue but your solution seems limited to your case. I'll 
dig deeper into this when I'm back home if no one else will be faster
                
> Width of the character "201" .. inconsistent with the width in the PDF 
> dictionary.
> ----------------------------------------------------------------------------------
>
>                 Key: PDFBOX-1501
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-1501
>             Project: PDFBox
>          Issue Type: Bug
>            Reporter: rahee ghurbhurn
>         Attachments: E-frutiger.pdf
>
>
> I have downloaded the trunk version of PDFBox for PDF/A validation purposes.
> The validation process fails with the following error :
> 3.1.6 : Invalid Font definition, Width of the character "201" in the font 
> program "AEOQYB+Frutiger-Bold-ANSI"is inconsistent with the width in the PDF 
> dictionary.
> The same PDF file is considered as valid when using Acrobat Pro X
> I used FontForge (as described in 
> https://issues.apache.org/jira/browse/PDFBOX-1259) to check the width of the 
> caracter and the value is correct 556. The same value is found in the PDF 
> file.
> When running in debug mode I noticed that the CharStringRenderer constructor 
> is called with  "false" as parameter, meaning that the charString is not 
> Type1 (Acrobat reader says it is Type1).
> When digging further, I found that in the handleCommandType2 method of 
> CharStringRenderer does not update the width of the character because the 
> following condition is not met
> else if ("endchar".equals(name)) {
>             if (numbers.size() == 1 ) {
>                 setWidth(numbers.get(0));
>             }
>         }
> numbers has an array as value ([556, 171, 158, 69, 194]).
> In the handleSequence method of CharStringHandler, the sequence value used to 
> compute the "numbers " value is [556, 171, 158, 69, 194, [14]] 
> [14] being the endchar command.
> If I change the above condition to
>  else if ("endchar".equals(name)) {
>            if (numbers.size() % 2 == 1 ) {
>                setWidth(numbers.get(0));
>            }
>        }
> The PDF file is considered as valid ... Is there a bug in the code or in the 
> validation process or in the PDF file ?
> Why should there be a single character when the endchar command is met ?
> The the technical note 5177 (16 march 2000) issued by Adode says that the 
> correct "sequence and form of a Type 2 charstring program may be represented 
> as:
> w? {hs* vs* cm* hm* mt subpath}? {mt subpath}* endchar
>     Where:
>     w = width
>     hs = hstem or hstemhm command
>     vs = vstem or vstemhm command
>     cm = cntrmask operator
>     hm = hintmask operator
>     mt = moveto (i.e. any of the moveto) operators
>     subpath = refers to the construction of a subpath (one complete closed 
> contour), which may include hintmask operators where appropriate.
> and the following symbols indicate specific usage:
> * zero or more occurrences are allowed
> ? zero or one occurrences are allowed
> + one or more occurrences are allowed
> { } indicates grouping
> The PDF file is attached to this mail and the Caracter 201 is Eacute.
> Thanks for your help
> Best regards

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to