You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Raymond Wu (JIRA)" <ji...@apache.org> on 2013/07/16 07:58:48 UTC

[jira] [Created] (PDFBOX-1661) Fix font subtype automatically

Raymond Wu created PDFBOX-1661:
----------------------------------

             Summary: Fix font subtype automatically
                 Key: PDFBOX-1661
                 URL: https://issues.apache.org/jira/browse/PDFBOX-1661
             Project: PDFBox
          Issue Type: Improvement
          Components: PDModel
    Affects Versions: 1.8.1
         Environment: PDFBox: PDFBox 1.8.1
Reader: Adobe Reader 11.0.0
Generator:  TCPDF 4.5.041

PDF Content:
<</Type /Font
/BaseFont /AdobeSongStd-Light,Bold-UniGB-UTF16-H
/Subtype /Type0
/Encoding /UniGB-UTF16-H
/DescendantFonts [27 0 R]
            Reporter: Raymond Wu


Subtype is parsed as "Type0" by PDFBox, but parsed as "Type1" by Adobe Reader.
This is not a bug of PDFBox.
The reason is TCPDF 4.5.041 generate font AdobeSongStd-Light with bad subtype "Type0".
It should be "Type1".

I have test the following codes and they work.
File: org/apache/pdfbox/pdmodel/font/PDFontFactory
Method: public static PDFont createFont( COSDictionary dic ) throws IOException

Original:
else if( subType.equals( COSName.TYPE0 ) )
{
    retval = new PDType0Font( dic );
}

Fixed:
else if( subType.equals( COSName.TYPE0 ) )
{
    retval = new PDType0Font( dic );
    COSName encoding = (COSName)dic.getDictionaryObject(COSName.ENCODING);
    if(encoding!=null) retval = new PDType1Font( dic );
}

With such patch PDFBox will act like Adobe Reader.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira