Juergen Uhl created PDFBOX-2951:
-----------------------------------

             Summary: quotedbl causes NullPointerException
                 Key: PDFBOX-2951
                 URL: https://issues.apache.org/jira/browse/PDFBOX-2951
             Project: PDFBox
          Issue Type: Bug
          Components: PDModel
    Affects Versions: 2.0.0
         Environment: Windows 10 64 bit
            Reporter: Juergen Uhl


I have a pdf document using (besides others) the font CourierNewPS-BoldMT and 
text with this font containing a double quote.

When calling PDFont.encode, this results in a NullPointerException due to the 
following:

The font encoding is built using pdf /DIFFERENCES which overwrites the original 
"quotedbl" at index 34 with an "A". The entries for quotedblbase/left/right are 
left unchanged. As a result, the inverted font does not contain "quotedbl" as 
key.

Within encode, the character code 34 gets assigned the name "quotedbl", which 
is then not found in the inverse encoding (PDTrueTypeFont.encode -> int code = 
inverted.get(name))

Right before this code line causing the NullPointerException, there is a check 
whether ttf.hasGlyph("quotedbl") (which in this case is false) and, if not, 
whether ttf.hasGlyph("uni0022") (which in this case is true); however, this has 
no consequence for the continuation of the code, which then crashes, since 
inverted.get("quotedbl") is null (which is assigned to an int).

I believe, this is a bug in PDFBox, but have no idea, whether the handling 
within encode should be changed (maybe using the "else" part in case 
ttf.hasGlyph("quotedbl") is false or whether code 34 should be assigned to 
quotedblbase in the first place, or even something else.

I attached the file (Test.pdf) where the error occurs and a jar (main is 
com.juergisApps.pdfConverter.Test) that reproduces the problem.

You may also see 
http://stackoverflow.com/questions/7140476/pdf-font-mapping-error

Juergen



--
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