You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2020/06/18 15:38:29 UTC
svn commit: r1878968 -
/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Author: tilman
Date: Thu Jun 18 15:38:29 2020
New Revision: 1878968
URL: http://svn.apache.org/viewvc?rev=1878968&view=rev
Log:
PDFBOX-4887: add test
Modified:
pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
Modified: pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java?rev=1878968&r1=1878967&r2=1878968&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/test/java/org/apache/pdfbox/pdmodel/font/PDFontTest.java Thu Jun 18 15:38:29 2020
@@ -24,10 +24,15 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
+import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
+import java.util.ArrayList;
+import java.util.List;
import org.apache.fontbox.ttf.TTFParser;
+import org.apache.fontbox.ttf.TrueTypeCollection;
import org.apache.fontbox.ttf.TrueTypeFont;
+import org.apache.fontbox.util.autodetect.FontFileFinder;
import org.apache.pdfbox.cos.COSName;
import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
@@ -220,6 +225,53 @@ public class PDFontTest
}
}
+ @Test
+ public void testFullEmbeddingTTC() throws IOException
+ {
+ FontFileFinder fff = new FontFileFinder();
+ TrueTypeCollection ttc = null;
+ for (URI uri : fff.find())
+ {
+ if (uri.getPath().endsWith(".ttc"))
+ {
+ File file = new File(uri);
+ System.out.println("TrueType collection file: " + file);
+ ttc = new TrueTypeCollection(file);
+ break;
+ }
+ }
+ if (ttc == null)
+ {
+ System.out.println("testFullEmbeddingTTC skipped, no .ttc files available");
+ return;
+ }
+
+ final List<String> names = new ArrayList<String>();
+ ttc.processAllFonts(new TrueTypeCollection.TrueTypeFontProcessor()
+ {
+ @Override
+ public void process(TrueTypeFont ttf) throws IOException
+ {
+ System.out.println("TrueType font in collection: " + ttf.getName());
+ names.add(ttf.getName());
+ }
+ });
+
+ TrueTypeFont ttf = ttc.getFontByName(names.get(0)); // take the first one
+ System.out.println("TrueType font used for test: " + ttf.getName());
+
+ try
+ {
+ PDType0Font.load(new PDDocument(), ttf, false);
+ }
+ catch (IOException ex)
+ {
+ Assert.assertEquals("Full embedding of TrueType font collections not supported", ex.getMessage());
+ return;
+ }
+ Assert.fail("should have thrown IOException");
+ }
+
private void testPDFBox3826checkFonts(byte[] byteArray, File fontFile) throws IOException
{
PDDocument doc = PDDocument.load(byteArray);