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

Reply via email to