You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by le...@apache.org on 2017/07/15 14:33:48 UTC
svn commit: r1802024 - in
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font:
PDTrueTypeFont.java PDTrueTypeFontEmbedder.java TrueTypeEmbedder.java
Author: lehmi
Date: Sat Jul 15 14:33:48 2017
New Revision: 1802024
URL: http://svn.apache.org/viewvc?rev=1802024&view=rev
Log:
PDFBOX-3826: always pass a TrueTypeFont to the font embedder class
Modified:
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java
pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1802024&r1=1802023&r2=1802024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Sat Jul 15 14:33:48 2017
@@ -19,7 +19,6 @@ package org.apache.pdfbox.pdmodel.font;
import java.awt.geom.AffineTransform;
import java.awt.geom.GeneralPath;
import java.io.File;
-import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
@@ -139,13 +138,13 @@ public class PDTrueTypeFont extends PDSi
/**
* Creates a new TrueType font for embedding.
*/
- private PDTrueTypeFont(PDDocument document, InputStream ttfStream, Encoding encoding)
+ private PDTrueTypeFont(PDDocument document, TrueTypeFont ttf, Encoding encoding)
throws IOException
{
- PDTrueTypeFontEmbedder embedder = new PDTrueTypeFontEmbedder(document, dict, ttfStream,
+ PDTrueTypeFontEmbedder embedder = new PDTrueTypeFontEmbedder(document, dict, ttf,
encoding);
this.encoding = encoding;
- ttf = embedder.getTrueTypeFont();
+ this.ttf = ttf;
setFontDescriptor(embedder.getFontDescriptor());
isEmbedded = true;
isDamaged = false;
@@ -167,7 +166,7 @@ public class PDTrueTypeFont extends PDSi
public static PDTrueTypeFont load(PDDocument doc, File file, Encoding encoding)
throws IOException
{
- return new PDTrueTypeFont(doc, new FileInputStream(file), encoding);
+ return new PDTrueTypeFont(doc, new TTFParser().parse(file), encoding);
}
/**
@@ -185,7 +184,7 @@ public class PDTrueTypeFont extends PDSi
public static PDTrueTypeFont load(PDDocument doc, InputStream input, Encoding encoding)
throws IOException
{
- return new PDTrueTypeFont(doc, input, encoding);
+ return new PDTrueTypeFont(doc, new TTFParser().parse(input), encoding);
}
/**
@@ -201,7 +200,7 @@ public class PDTrueTypeFont extends PDSi
@Deprecated
public static PDTrueTypeFont loadTTF(PDDocument doc, File file) throws IOException
{
- return new PDTrueTypeFont(doc, new FileInputStream(file), WinAnsiEncoding.INSTANCE);
+ return new PDTrueTypeFont(doc, new TTFParser().parse(file), WinAnsiEncoding.INSTANCE);
}
/**
@@ -217,7 +216,7 @@ public class PDTrueTypeFont extends PDSi
@Deprecated
public static PDTrueTypeFont loadTTF(PDDocument doc, InputStream input) throws IOException
{
- return new PDTrueTypeFont(doc, input, WinAnsiEncoding.INSTANCE);
+ return new PDTrueTypeFont(doc, new TTFParser().parse(input), WinAnsiEncoding.INSTANCE);
}
/**
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java?rev=1802024&r1=1802023&r2=1802024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java Sat Jul 15 14:33:48 2017
@@ -24,6 +24,7 @@ import java.util.Collections;
import java.util.List;
import java.util.Map;
import org.apache.fontbox.ttf.HorizontalMetricsTable;
+import org.apache.fontbox.ttf.TrueTypeFont;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -50,10 +51,10 @@ final class PDTrueTypeFontEmbedder exten
* @param encoding The PostScript encoding vector to be used for embedding.
* @throws IOException if the TTF could not be read
*/
- PDTrueTypeFontEmbedder(PDDocument document, COSDictionary dict, InputStream ttfStream,
+ PDTrueTypeFontEmbedder(PDDocument document, COSDictionary dict, TrueTypeFont ttf,
Encoding encoding) throws IOException
{
- super(document, dict, ttfStream);
+ super(document, dict, ttf, false);
dict.setItem(COSName.SUBTYPE, COSName.TRUE_TYPE);
GlyphList glyphList = GlyphList.getAdobeGlyphList();
Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java?rev=1802024&r1=1802023&r2=1802024&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java Sat Jul 15 14:33:48 2017
@@ -61,22 +61,6 @@ abstract class TrueTypeEmbedder implemen
private final boolean embedSubset;
/**
- * Creates a new TrueType font for full embedding.
- */
- TrueTypeEmbedder(PDDocument document, COSDictionary dict, InputStream ttfStream) throws IOException
- {
- this.document = document;
- this.embedSubset = false;
-
- buildFontFile2(ttfStream);
-
- dict.setName(COSName.BASE_FONT, ttf.getName());
-
- // choose a Unicode "cmap"
- cmap = ttf.getUnicodeCmap();
- }
-
- /**
* Creates a new TrueType font for embedding.
*/
TrueTypeEmbedder(PDDocument document, COSDictionary dict, TrueTypeFont ttf,
@@ -264,6 +248,7 @@ abstract class TrueTypeEmbedder implemen
/**
* Returns the FontBox font.
*/
+ @Deprecated
public TrueTypeFont getTrueTypeFont()
{
return ttf;
@@ -311,7 +296,7 @@ abstract class TrueTypeEmbedder implemen
tables.add("gasp");
// set the GIDs to subset
- TTFSubsetter subsetter = new TTFSubsetter(getTrueTypeFont(), tables);
+ TTFSubsetter subsetter = new TTFSubsetter(ttf, tables);
subsetter.addAll(subsetCodePoints);
// calculate deterministic tag based on the chosen subset