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 2017/06/11 13:05:03 UTC
svn commit: r1798363 -
/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java
Author: tilman
Date: Sun Jun 11 13:05:03 2017
New Revision: 1798363
URL: http://svn.apache.org/viewvc?rev=1798363&view=rev
Log:
PDFBOX-3824: get the length of a ttf datastream without decoding it; use JDK7 syntax
Modified:
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/TrueTypeEmbedder.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/TrueTypeEmbedder.java?rev=1798363&r1=1798362&r2=1798363&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 Sun Jun 11 13:05:03 2017
@@ -37,7 +37,6 @@ import org.apache.fontbox.ttf.TTFSubsett
import org.apache.fontbox.ttf.TrueTypeFont;
import org.apache.pdfbox.cos.COSDictionary;
import org.apache.pdfbox.cos.COSName;
-import org.apache.pdfbox.io.IOUtils;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.pdmodel.common.PDRectangle;
import org.apache.pdfbox.pdmodel.common.PDStream;
@@ -110,16 +109,13 @@ abstract class TrueTypeEmbedder implemen
public final void buildFontFile2(InputStream ttfStream) throws IOException
{
PDStream stream = new PDStream(document, ttfStream, COSName.FLATE_DECODE);
- stream.getCOSObject().setInt(COSName.LENGTH1, stream.toByteArray().length);
// as the stream was closed within the PDStream constructor, we have to recreate it
- InputStream input = null;
- try
+ try (InputStream input = stream.createInputStream())
{
- input = stream.createInputStream();
if (ttf != null)
{
- // close the replaced true type font
+ // close the replaced TrueType font
ttf.close();
}
ttf = new TTFParser().parseEmbedded(input);
@@ -132,11 +128,7 @@ abstract class TrueTypeEmbedder implemen
fontDescriptor = createFontDescriptor(ttf);
}
}
- finally
- {
- IOUtils.closeQuietly(input);
- }
-
+ stream.getCOSObject().setLong(COSName.LENGTH1, ttf.getOriginalDataSize());
fontDescriptor.setFontFile2(stream);
}