You are viewing a plain text version of this content. The canonical link for it is here.
Posted to fop-commits@xmlgraphics.apache.org by ss...@apache.org on 2019/02/15 11:08:02 UTC
svn commit: r1853633 - in /xmlgraphics/fop-pdf-images/trunk:
src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java
test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
Author: ssteiner
Date: Fri Feb 15 11:08:02 2019
New Revision: 1853633
URL: http://svn.apache.org/viewvc?rev=1853633&view=rev
Log:
FOP-2841: PDF to PDF with merge-fonts checkbox misaligned
Modified:
xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java
xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
Modified: xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java?rev=1853633&r1=1853632&r2=1853633&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/src/java/org/apache/fop/render/pdf/pdfbox/MergeTTFonts.java Fri Feb 15 11:08:02 2019
@@ -273,9 +273,12 @@ public class MergeTTFonts extends TTFSub
}
public byte[] getMergedFontSubset() throws IOException {
+ int sgsize = added.size();
+ if (sgsize == 1 && size == fontFile.getAllBytes().length) {
+ return fontFile.getAllBytes();
+ }
output = new byte[size * 2];
createDirectory(); // Create the TrueType header and directory
- int sgsize = added.size();
if (!cid) {
writeCMAP(cmap);
// copyTable(fontFile, OFTableName.CMAP);
Modified: xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java
URL: http://svn.apache.org/viewvc/xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java?rev=1853633&r1=1853632&r2=1853633&view=diff
==============================================================================
--- xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java (original)
+++ xmlgraphics/fop-pdf-images/trunk/test/java/org/apache/fop/render/pdf/PDFBoxAdapterTestCase.java Fri Feb 15 11:08:02 2019
@@ -21,6 +21,7 @@ import java.awt.Rectangle;
import java.awt.geom.AffineTransform;
import java.awt.geom.Rectangle2D;
import java.io.BufferedOutputStream;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.IOException;
@@ -50,6 +51,8 @@ import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.cos.COSObject;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.PDPage;
+import org.apache.pdfbox.pdmodel.font.PDCIDFontType2;
+import org.apache.pdfbox.pdmodel.font.PDType0Font;
import org.apache.xmlgraphics.image.loader.ImageException;
import org.apache.xmlgraphics.image.loader.ImageInfo;
@@ -78,6 +81,7 @@ import org.apache.fop.render.pcl.PCLGene
import org.apache.fop.render.pcl.PCLGraphics2D;
import org.apache.fop.render.pdf.pdfbox.ImageConverterPDF2G2D;
import org.apache.fop.render.pdf.pdfbox.ImagePDF;
+import org.apache.fop.render.pdf.pdfbox.MergeTTFonts;
import org.apache.fop.render.pdf.pdfbox.PDFBoxAdapter;
import org.apache.fop.render.pdf.pdfbox.PDFBoxImageHandler;
import org.apache.fop.render.pdf.pdfbox.PSPDFGraphics2D;
@@ -85,8 +89,6 @@ import org.apache.fop.render.ps.PSDocume
import org.apache.fop.render.ps.PSImageFormResource;
import org.apache.fop.render.ps.PSRenderingUtil;
-
-
public class PDFBoxAdapterTestCase {
protected static final String CFF1 = "test/resources/2fonts.pdf";
protected static final String CFF2 = "test/resources/2fonts2.pdf";
@@ -172,6 +174,23 @@ public class PDFBoxAdapterTestCase {
parseFonts(fi);
}
+ @Test
+ public void testMergeTT() throws IOException {
+ PDDocument doc = PDDocument.load(new File(TYPE0TT));
+ PDType0Font type0Font = (PDType0Font) doc.getPage(0).getResources().getFont(COSName.getPDFName("C2_0"));
+ PDCIDFontType2 ttf = (PDCIDFontType2) type0Font.getDescendantFont();
+ InputStream originalData = ttf.getTrueTypeFont().getOriginalData();
+ byte[] originalDataBytes = IOUtils.toByteArray(originalData);
+ doc.close();
+
+ MergeTTFonts mergeTTFonts = new MergeTTFonts(null);
+ Map<Integer, Integer> map = new HashMap<Integer, Integer>();
+ map.put(0, 0);
+ mergeTTFonts.readFont(new ByteArrayInputStream(originalDataBytes), null, null, map, true);
+ byte[] mergedData = mergeTTFonts.getMergedFontSubset();
+ Assert.assertArrayEquals(mergedData, originalDataBytes);
+ }
+
private void parseFonts(FontInfo fi) throws IOException {
for (Typeface font : fi.getUsedFonts().values()) {
InputStream is = ((CustomFont) font).getInputStream();
---------------------------------------------------------------------
To unsubscribe, e-mail: fop-commits-unsubscribe@xmlgraphics.apache.org
For additional commands, e-mail: fop-commits-help@xmlgraphics.apache.org