You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "John Hewson (JIRA)" <ji...@apache.org> on 2014/12/19 20:22:15 UTC
[jira] [Resolved] (PDFBOX-1790) NPE during PDTrueTypeFont.loadTTF()
on Mac TrueType font lacking Windows-platformID CMAPEncodingEntry
[ https://issues.apache.org/jira/browse/PDFBOX-1790?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
John Hewson resolved PDFBOX-1790.
---------------------------------
Resolution: Fixed
Ok, I've tested this on my Mac and can confirm that this is fixed in the 2.0 trunk.
> NPE during PDTrueTypeFont.loadTTF() on Mac TrueType font lacking Windows-platformID CMAPEncodingEntry
> -----------------------------------------------------------------------------------------------------
>
> Key: PDFBOX-1790
> URL: https://issues.apache.org/jira/browse/PDFBOX-1790
> Project: PDFBox
> Issue Type: Bug
> Components: Writing
> Affects Versions: 1.8.2
> Environment: Mac 10.7 / Java 6
> Reporter: Andrew Thomas
> Assignee: John Hewson
> Priority: Critical
> Fix For: 2.0.0
>
>
> 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?
> Example problem font:
> * Apple Chancery (Included with OS)
> Details:
> * PDFBox version: 1.8.2 [Have not yet tested with 1.8.3, which was released a few days ago]
> * Platform: Mac
> * Java 6
> * Font platform IDs: 0, 1
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)