[jira] [Commented] (FOP-2697) Acrobat Reader error with Adobe Kozuka Mincho font

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

[jira] [Commented] (FOP-2697) Acrobat Reader error with Adobe Kozuka Mincho font

JIRA jira@apache.org

    [ https://issues.apache.org/jira/browse/FOP-2697?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15899369#comment-15899369 ]

Kazuyuki Murakami commented on FOP-2697:

English is not native, please forgive poor English.

The cause of this problem has been clarified.

First of all, please see the specification below.
P. 10 "Table 3 Operand Encoding"

Next, look at the following sources.
org.apache.fop.fonts.truetype.OTFSubSetFile#updateOffset (byte [] out, int position, int length, int replacement)

The value of "lengh" determines "Size" from the offset value of the original font according to the specification of "Table 3 Operand Encoding" and sets its "Size".
However, there seems to be a pattern in which the new offset value ("replacement") is not the same "Size", in which case it seems that incorrect binary data will be written.

For example, in the original font charStringsOffset is 12684 and "Size" is 3.
Subset font charStringsOffset is 37569 and "Size" should be 5, but for updateOffset() it is treated as 3.

All fonts that could not be displayed properly were this pattern.
Unfortunately I do not know how to fix it.

> Acrobat Reader error with Adobe Kozuka Mincho font
> --------------------------------------------------
>                 Key: FOP-2697
>                 URL: https://issues.apache.org/jira/browse/FOP-2697
>             Project: FOP
>          Issue Type: Bug
>          Components: font/opentype
>    Affects Versions: trunk
>         Environment: Operating Systems: Windows
> JDK: 1.8
> OpenFont: Adobe Kozuka Mincho
>            Reporter: Kazuyuki Murakami
>         Attachments: fop.xconf, test.fo, test_KozukaMinchoPr6NR.pdf, test_NotoSansCJKjp.pdf
> The Kozuka Mincho Pr6N R font cannot be embedded into PDF document.
> How to repeat
> 1. Get FOP from trunk@1784735
> 2. Install Adobe Acrobat Reader DC Japanese language version.
> 3. Get Font from C:\Program Files (x86)\Adobe\Acrobat DC\Resource\CIDFont\KozMinPr6N-Regular.otf
> 4. Use my config file and generate the PDF, there is no error reported.
> 5. Open the PDF file in Acro-Reader, it will report the "cannot extract the embedded font" error.
> Notes
> 1. When use the Noto Sans CJK JP and Kozuka Gothic Pr6N M fonts, there is no problem.
> 2. But NfMotoya Cedar Std W1 (Free Font, Regisration needed) and Morisawa A-OTF Shin Go Pro R are failed.
> 3. Read embedded stream by CFFParser, test_NotoSansCJKjp.pdf is ok, test_KozukaMinchoPr6NR.pdf is failed at reading CharStringIndex.
> java.io.EOFException
> at org.apache.fontbox.cff.DataInput.readUnsignedShort(DataInput.java:151)
> at org.apache.fontbox.cff.CFFDataInput.readCard16(CFFDataInput.java:55)
> at org.apache.fontbox.cff.CFFParser.readIndexDataOffsets(CFFParser.java:172)
> at org.apache.fontbox.cff.CFFParser.readIndexData(CFFParser.java:193)
> at org.apache.fontbox.cff.CFFParser.parseFont(CFFParser.java:456)
> at org.apache.fontbox.cff.CFFParser.parse(CFFParser.java:141)
> CFFParser#parseFont()
> // charstrings index
> DictData.Entry charStringsEntry = topDict.getEntry("CharStrings");
> int charStringsOffset = charStringsEntry.getNumber(0).intValue(); // THIS VALUE IS NEGATIVE!!
> input.setPosition(charStringsOffset);
> byte[][] charStringsIndex = readIndexData(input);

This message was sent by Atlassian JIRA