diff options
author | Simon Steiner <ssteiner@apache.org> | 2017-03-08 13:58:08 +0000 |
---|---|---|
committer | Simon Steiner <ssteiner@apache.org> | 2017-03-08 13:58:08 +0000 |
commit | 33ae6deb2efce2a7892af13d5a2527b7d5f6813f (patch) | |
tree | d0c2eade7618a3f9679ffe9f356ebce1d377d079 /fop-core | |
parent | 4a549b904b81ffce028fdddc9a411cabab4bfd84 (diff) | |
download | xmlgraphics-fop-33ae6deb2efce2a7892af13d5a2527b7d5f6813f.tar.gz xmlgraphics-fop-33ae6deb2efce2a7892af13d5a2527b7d5f6813f.zip |
FOP-2697: Adobe Reader error with Adobe Kozuka Mincho font
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1785969 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'fop-core')
-rw-r--r-- | fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java | 2 | ||||
-rw-r--r-- | fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFSubSetFileTestCase.java | 20 |
2 files changed, 19 insertions, 3 deletions
diff --git a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java index 5ee54eaa8..bb5c48910 100644 --- a/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java +++ b/fop-core/src/main/java/org/apache/fop/fonts/truetype/OTFSubSetFile.java @@ -172,7 +172,7 @@ public class OTFSubSetFile extends OTFFile { writeBytes(cffReader.getHeader()); //Name Index - writeIndex(Arrays.asList(embeddedName.getBytes())); + writeIndex(Arrays.asList(embedFontName.getBytes())); //Keep offset of the topDICT so it can be updated once all data has been written int topDictOffset = currentPos; diff --git a/fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFSubSetFileTestCase.java b/fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFSubSetFileTestCase.java index d87d19be5..e653f7f9c 100644 --- a/fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFSubSetFileTestCase.java +++ b/fop-core/src/test/java/org/apache/fop/fonts/truetype/OTFSubSetFileTestCase.java @@ -37,6 +37,7 @@ import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; import org.apache.fontbox.cff.CFFFont; +import org.apache.fontbox.cff.CFFParser; import org.apache.fop.fonts.cff.CFFDataReader; import org.apache.fop.fonts.cff.CFFDataReader.CFFIndexData; @@ -435,8 +436,8 @@ public class OTFSubSetFileTestCase extends OTFFileTestCase { @Test public void testFDSelect() throws IOException { - Assert.assertEquals(getSubset(1).length, 39); - Assert.assertEquals(getSubset(2).length, 46); + Assert.assertEquals(getSubset(1).length, 41); + Assert.assertEquals(getSubset(2).length, 48); } private byte[] getSubset(final int opLen) throws IOException { @@ -468,4 +469,19 @@ public class OTFSubSetFileTestCase extends OTFFileTestCase { otfSubSetFile.readFont(reader, "StandardOpenType", header, new HashMap<Integer, Integer>()); return otfSubSetFile.getFontSubset(); } + + @Test + public void testOffsets() throws IOException { + Map<Integer, Integer> glyphs = new HashMap<Integer, Integer>(); + for (int i = 0; i < 256; i++) { + glyphs.put(i, i); + } + StringBuilder sb = new StringBuilder(); + for (int i = 0; i < 2048; i++) { + sb.append("SourceSansProBold"); + } + OTFSubSetFile otfSubSetFile = new OTFSubSetFile(); + otfSubSetFile.readFont(sourceSansReader, sb.toString(), null, glyphs); + new CFFParser().parse(otfSubSetFile.getFontSubset()); + } } |