[
https://issues.apache.org/jira/browse/PDFBOX-2215?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14086634#comment-14086634
]
John Hewson edited comment on PDFBOX-2215 at 8/5/14 7:23 PM:
-------------------------------------------------------------
It works for me but makeFontDescriptor is called when a font is loaded from the
local system, so it seems that our local systems are providing different TTF
files for "Symbol", I'm on OS X 10.9.3. From the extra information in the
exception message I can compare the cmaps in our respective fonts:
{code}
Tilman: [{1 0}, {3 0}] = (Macintosh, Roman), (Windows, Symbol)
John: [{0 3}, {1 0}] = (Unicode, BMP), (Macintosh, Roman)
{code}
The old code was looking for a (Windows, Unicode) cmap, while the new code is
looking for a (Unicode, Full/BMP) cmap. Neither will work on your system with
this font, because it only has a (Windows, Symbol) cmap. I've added some code
to the trunk so that PDFBox will look for the following cmaps in order:
Unicode/Full, Unicode/BMP, Windows/Unicode, Windows/Symbol.
Microsoft's [Recommendations for OpenType
Fonts|http://www.microsoft.com/typography/otspec/recom.htm] says that "Symbol"
encoding actually means "Unicode, non-standard character set", so this seems
ok, because we want a Unicode cmap.
was (Author: jahewson):
It works for me but makeFontDescriptor is called when a font is loaded from the
local system, so it seems that our local systems are providing different TTF
files for "Symbol", I'm on OS X 10.9.3. From the extra information in the
exception message I can compare the cmaps in our respective fonts:
{code}
Tilman: [{1 0}, {3 0}] = {Macintosh, Roman}, {Windows, Symbol}
John: [{0 3}, {1 0}] = {Unicode, BMP}, {Macintosh, Roman}
{code}
The old code was looking for a {Windows, Unicode} cmap, while the new code is
looking for a {Unicode, Full/BMP} cmap. Neither will work on your system with
this font, because it only has a {Windows, Symbol} cmap. I've added some code
to the trunk so that PDFBox will look for the following cmaps in order:
Unicode/Full, Unicode/BMP, Windows/Unicode, Windows/Symbol.
Microsoft's [Recommendations for OpenType
Fonts|http://www.microsoft.com/typography/otspec/recom.htm] says that "Symbol"
encoding actually means "Unicode, non-standard character set", so this seems
ok, because we want a Unicode cmap.
> NPE in PDTrueTypeFont.makeFontDescriptor
> ----------------------------------------
>
> Key: PDFBOX-2215
> URL: https://issues.apache.org/jira/browse/PDFBOX-2215
> Project: PDFBox
> Issue Type: Bug
> Components: PDModel
> Affects Versions: 2.0.0
> Reporter: Tilman Hausherr
> Assignee: John Hewson
> Fix For: 2.0.0
>
> Attachments: PDFBOX-2215-027073.pdf
>
>
> I get an NPE with the attached file:
> {code}
> java.lang.NullPointerException
> at
> org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.makeFontDescriptor(PDTrueTypeFont.java:337)
> at
> org.apache.pdfbox.pdmodel.font.PDTrueTypeFont.getFontDescriptor(PDTrueTypeFont.java:150)
> at org.apache.pdfbox.pdmodel.font.PDFont.getFontHeight(PDFont.java:350)
> {code}
--
This message was sent by Atlassian JIRA
(v6.2#6252)