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/10 18:43:51 UTC

svn commit: r1878723 - in /pdfbox/branches/2.0: fontbox/src/main/java/org/apache/fontbox/cmap/ fontbox/src/main/java/org/apache/fontbox/ttf/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/ pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/co...

Author: tilman
Date: Wed Jun 10 18:43:51 2020
New Revision: 1878723

URL: http://svn.apache.org/viewvc?rev=1878723&view=rev
Log:
PDFBOX-4869: buffer reading of resources to improve speed, by Alfred Faltiska

Modified:
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
    pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/Standard14Fonts.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/util/Version.java

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/cmap/CMapParser.java Wed Jun 10 18:43:51 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.fontbox.cmap;
 
+import java.io.BufferedInputStream;
 import java.io.File;
 import java.io.FileInputStream;
 import java.io.IOException;
@@ -446,12 +447,7 @@ public class CMapParser
      */
     protected InputStream getExternalCMap(String name) throws IOException
     {
-        InputStream is = getClass().getResourceAsStream(name);
-        if (is == null)
-        {
-            throw new IOException("Error: Could not find referenced cmap stream " + name);
-        }
-        return is;
+        return new BufferedInputStream(getClass().getResourceAsStream(name));
     }
 
     private Object parseNextToken(PushbackInputStream is) throws IOException

Modified: pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java (original)
+++ pdfbox/branches/2.0/fontbox/src/main/java/org/apache/fontbox/ttf/OpenTypeScript.java Wed Jun 10 18:43:51 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.fontbox.ttf;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -221,15 +222,8 @@ public final class OpenTypeScript
         InputStream input = null;
         try
         {
-            input = OpenTypeScript.class.getResourceAsStream(path);
-            if (input != null)
-            {
-                parseScriptsFile(input);
-            }
-            else
-            {
-                LOG.warn("Could not find '" + path + "', mirroring char map will be empty: ");
-            }
+            input = new BufferedInputStream(OpenTypeScript.class.getResourceAsStream(path));
+            parseScriptsFile(input);
         }
         catch (IOException e)
         {

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/FontMapperImpl.java Wed Jun 10 18:43:51 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.pdfbox.pdmodel.font;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
@@ -112,11 +113,8 @@ final class FontMapperImpl implements Fo
         try
         {
             String ttfName = "/org/apache/pdfbox/resources/ttf/LiberationSans-Regular.ttf";
-            InputStream ttfStream = FontMapper.class.getResourceAsStream(ttfName);
-            if (ttfStream == null)
-            {
-                throw new IOException("Error loading resource: " + ttfName);
-            }
+            InputStream ttfStream =
+                    new BufferedInputStream(FontMapper.class.getResourceAsStream(ttfName));
             TTFParser ttfParser = new TTFParser();
             lastResortFont = ttfParser.parse(ttfStream);
         }

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/Standard14Fonts.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/Standard14Fonts.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/Standard14Fonts.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/font/Standard14Fonts.java Wed Jun 10 18:43:51 2020
@@ -17,6 +17,7 @@
 
 package org.apache.pdfbox.pdmodel.font;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collections;
@@ -113,11 +114,8 @@ final class Standard14Fonts
         }
 
         String resourceName = "/org/apache/pdfbox/resources/afm/" + afmName + ".afm";
-        InputStream afmStream = PDType1Font.class.getResourceAsStream(resourceName);
-        if (afmStream == null)
-        {
-            throw new IOException(resourceName + " not found");
-        }
+        InputStream afmStream =
+                new BufferedInputStream(PDType1Font.class.getResourceAsStream(resourceName));
         try
         {
             AFMParser parser = new AFMParser(afmStream);

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/pdmodel/graphics/color/PDDeviceCMYK.java Wed Jun 10 18:43:51 2020
@@ -25,6 +25,7 @@ import java.awt.color.ICC_ColorSpace;
 import java.awt.color.ICC_Profile;
 import java.awt.image.BufferedImage;
 import java.awt.image.WritableRaster;
+import java.io.BufferedInputStream;
 import java.io.IOException;
 
 import java.io.InputStream;
@@ -96,11 +97,7 @@ public class PDDeviceCMYK extends PDDevi
 
         String name = "/org/apache/pdfbox/resources/icc/ISOcoated_v2_300_bas.icc";
 
-        InputStream is = PDDeviceCMYK.class.getResourceAsStream(name);
-        if (is == null)
-        {
-            throw new IOException("Error loading resource: " + name);
-        }
+        InputStream is = new BufferedInputStream(PDDeviceCMYK.class.getResourceAsStream(name));
         ICC_Profile iccProfile = ICC_Profile.getInstance(is);
         is.close();
 

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/text/PDFTextStripper.java Wed Jun 10 18:43:51 2020
@@ -16,6 +16,7 @@
  */
 package org.apache.pdfbox.text;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
@@ -1842,17 +1843,10 @@ public class PDFTextStripper extends Leg
     static
     {
         String path = "/org/apache/pdfbox/resources/text/BidiMirroring.txt";
-        InputStream input = PDFTextStripper.class.getResourceAsStream(path);
+        InputStream input = new BufferedInputStream(PDFTextStripper.class.getResourceAsStream(path));
         try
         {
-            if (input != null)
-            {
-                parseBidiFile(input);
-            }
-            else
-            {
-                LOG.warn("Could not find '" + path + "', mirroring char map will be empty: ");
-            }
+            parseBidiFile(input);
         }
         catch (IOException e)
         {

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/util/Version.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/util/Version.java?rev=1878723&r1=1878722&r2=1878723&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/util/Version.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/util/Version.java Wed Jun 10 18:43:51 2020
@@ -17,6 +17,7 @@
 
 package org.apache.pdfbox.util;
 
+import java.io.BufferedInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Properties;
@@ -44,11 +45,7 @@ public final class Version
         InputStream is = null;
         try
         {
-            is = Version.class.getResourceAsStream(PDFBOX_VERSION_PROPERTIES);
-            if (is == null)
-            {
-                return null;
-            }
+            is = new BufferedInputStream(Version.class.getResourceAsStream(PDFBOX_VERSION_PROPERTIES));
             Properties properties = new Properties();
             properties.load(is);
             return properties.getProperty("pdfbox.version", null);