Hi,
Am 27.11.2013 20:15, schrieb Andy Thomas-Cramer:
I'm attempting to embed a TrueType font using PDFBox, on the Mac, using
PDTrueType.loadTTF( PDDocument, InputStream, Encoding ).
For TrueType fonts originating from Windows (e.g., Tahoma) this works.
For TrueType fonts originating from the Mac (e.g., Apple Chancery), a
NullPointerException is thrown.
java.lang.NullPointerException
at
org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.loadDescriptorDictionary(PDTrueTypeFont.java:409)
at
org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.loadTTF(PDTrueTypeFont.java:201)
at
org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.loadTTF(PDTrueTypeFont.java:177)
I stepped through the code in a debugger. The method
PDTrueTypeFont.loadDescriptorDictionary() loops through the cmap table for the
font, looking for a cmap with platform ID 3 (Windows), and sets the variable
unimap only if one is found. After that loop, the variable unimap is
dereferenced without checking for null.
Some Mac TrueType fonts have platform IDs 0 (Unicode) and 1 (Mac), but not 3
(Windows).
At the least, a null check seems required. But more desirable would be support
for Mac TrueType fonts.
Am I missing something, or should I enter a bug?
Sound like a bug. Please create an issue on JIRA [1] and attach the font in
question if possible
Details:
* PDFBox version: 1.8.2
* Platform: Mac
* Java 6
* Font platform IDs: 0, 1
Thanks in advance
BR
Andreas Lehmkühler
[1] https://issues.apache.org/jira/browse/PDFBOX