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/09 17:23:50 UTC

svn commit: r1798250 - in /pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf: MemoryTTFDataStream.java RAFDataStream.java TTCDataStream.java TTFDataStream.java TrueTypeFont.java

Author: tilman
Date: Fri Jun  9 17:23:50 2017
New Revision: 1798250

URL: http://svn.apache.org/viewvc?rev=1798250&view=rev
Log:
PDFBOX-3824: get the length of a ttf datastream

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/RAFDataStream.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTCDataStream.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFDataStream.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java?rev=1798250&r1=1798249&r2=1798250&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/MemoryTTFDataStream.java Fri Jun  9 17:23:50 2017
@@ -44,7 +44,7 @@ class MemoryTTFDataStream extends TTFDat
         {
             ByteArrayOutputStream output = new ByteArrayOutputStream( is.available() );
             byte[] buffer = new byte[1024];
-            int amountRead = 0;
+            int amountRead;
             while( (amountRead = is.read( buffer ) ) != -1 )
             {
                 output.write( buffer, 0, amountRead );
@@ -62,6 +62,7 @@ class MemoryTTFDataStream extends TTFDat
      * @return An unsigned byte.
      * @throws IOException If there is an error reading the data.
      */
+    @Override
     public long readLong() throws IOException
     {
         return ((long)(readSignedInt()) << 32) + (readSignedInt() & 0xFFFFFFFFL);
@@ -91,6 +92,7 @@ class MemoryTTFDataStream extends TTFDat
      * @return An unsigned byte.
      * @throws IOException If there is an error reading the data.
      */
+    @Override
     public int read() throws IOException
     {
         if (currentPosition >= data.length)
@@ -108,6 +110,7 @@ class MemoryTTFDataStream extends TTFDat
      * @return An unsigned short.
      * @throws IOException If there is an error reading the data.
      */
+    @Override
     public int readUnsignedShort() throws IOException
     {
         int ch1 = this.read();
@@ -125,6 +128,7 @@ class MemoryTTFDataStream extends TTFDat
      * @return An signed short.
      * @throws IOException If there is an error reading the data.
      */
+    @Override
     public short readSignedShort() throws IOException
     {
         int ch1 = this.read();
@@ -141,6 +145,7 @@ class MemoryTTFDataStream extends TTFDat
      * 
      * @throws IOException If there is an error closing the resources.
      */
+    @Override
     public void close() throws IOException
     {
     }
@@ -151,6 +156,7 @@ class MemoryTTFDataStream extends TTFDat
      * @param pos The position to seek to.
      * @throws IOException If there is an error seeking to that position.
      */
+    @Override
     public void seek(long pos) throws IOException
     {
         currentPosition = (int)pos;
@@ -167,6 +173,7 @@ class MemoryTTFDataStream extends TTFDat
      * 
      * @throws IOException If there is an error reading from the stream.
      */
+    @Override
     public int read(byte[] b,
             int off,
             int len)
@@ -190,6 +197,7 @@ class MemoryTTFDataStream extends TTFDat
      * @return The current position in the stream.
      * @throws IOException If an error occurs while reading the stream.
      */
+    @Override
     public long getCurrentPosition() throws IOException
     {
         return currentPosition;
@@ -198,8 +206,18 @@ class MemoryTTFDataStream extends TTFDat
     /**
      * {@inheritDoc}
      */
+    @Override
     public InputStream getOriginalData() throws IOException
     {
         return new ByteArrayInputStream( data );
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public long getOriginalDataSize()
+    {
+        return data.length;
+    }
 }
\ No newline at end of file

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/RAFDataStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/RAFDataStream.java?rev=1798250&r1=1798249&r2=1798250&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/RAFDataStream.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/RAFDataStream.java Fri Jun  9 17:23:50 2017
@@ -175,4 +175,13 @@ class RAFDataStream extends TTFDataStrea
     {
         return new FileInputStream( ttfFile );
     }
+
+    /**
+     * {@inheritDoc}
+     */
+    @Override
+    public long getOriginalDataSize()
+    {
+        return ttfFile.length();
+    }
 }

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTCDataStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTCDataStream.java?rev=1798250&r1=1798249&r2=1798250&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTCDataStream.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTCDataStream.java Fri Jun  9 17:23:50 2017
@@ -88,4 +88,10 @@ class TTCDataStream extends TTFDataStrea
     {
         return stream.getOriginalData();
     }
+
+    @Override
+    public long getOriginalDataSize()
+    {
+        return stream.getOriginalDataSize();
+    }
 }

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFDataStream.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFDataStream.java?rev=1798250&r1=1798249&r2=1798250&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFDataStream.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TTFDataStream.java Fri Jun  9 17:23:50 2017
@@ -304,4 +304,11 @@ abstract class TTFDataStream implements
      */
     public abstract InputStream getOriginalData() throws IOException;
 
+    /**
+     * This will get the original data size that was used for this stream.
+     * 
+     * @return The size of the original data.
+     * @throws IOException If there is an issue reading the data.
+     */
+    public abstract long getOriginalDataSize();
 }

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java?rev=1798250&r1=1798249&r2=1798250&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/TrueTypeFont.java Fri Jun  9 17:23:50 2017
@@ -308,6 +308,19 @@ public class TrueTypeFont implements Fon
     {
        return data.getOriginalData(); 
     }
+
+    /**
+     * Get the data size of the TrueType Font program representing the stream used to build this
+     * object (normally from the TTFParser object).
+     * 
+     * @return the size.
+     * 
+     * @throws IOException If there is an error getting the font data.
+     */
+    public long getOriginalDataSize()
+    {
+       return data.getOriginalDataSize(); 
+    }
     
     /**
      * Read the given table if necessary. Package-private, used by TTFParser only.