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/16 12:55:36 UTC
svn commit: r1802054 - in
/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font:
PDTrueTypeFont.java PDTrueTypeFontEmbedder.java TrueTypeEmbedder.java
Author: lehmi
Date: Sun Jul 16 12:55:35 2017
New Revision: 1802054
URL: http://svn.apache.org/viewvc?rev=1802054&view=rev
Log:
PDFBOX-3826: always pass a TrueTypeFont to the font embedder class
Modified:
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java
pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java?rev=1802054&r1=1802053&r2=1802054&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFont.java Sun Jul 16 12:55:35 2017
@@ -90,7 +90,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);
}
/**
@@ -108,7 +108,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);
}
/**
@@ -124,7 +124,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);
}
/**
@@ -140,7 +140,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);
}
private CmapSubtable cmapWinUnicode = null;
@@ -274,13 +274,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;
Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java?rev=1802054&r1=1802053&r2=1802054&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/PDTrueTypeFontEmbedder.java Sun Jul 16 12:55:35 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/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java?rev=1802054&r1=1802053&r2=1802054&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java Sun Jul 16 12:55:35 2017
@@ -62,22 +62,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,
@@ -271,6 +255,7 @@ abstract class TrueTypeEmbedder implemen
/**
* Returns the FontBox font.
*/
+ @Deprecated
public TrueTypeFont getTrueTypeFont()
{
return ttf;
@@ -318,7 +303,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