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 2018/06/30 14:21:33 UTC

svn commit: r1834741 - in /pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter: Filter.java FlateFilter.java

Author: tilman
Date: Sat Jun 30 14:21:33 2018
New Revision: 1834741

URL: http://svn.apache.org/viewvc?rev=1834741&view=rev
Log:
PDFBOX-4184: make flate compression level public to allow access in future image compression code, as suggested by Emmeran Seehuber

Modified:
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
    pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java?rev=1834741&r1=1834740&r2=1834741&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/Filter.java Sat Jun 30 14:21:33 2018
@@ -165,4 +165,20 @@ public abstract class Filter
         return reader;
     }
 
+    /**
+     * @return the ZIP compression level configured for PDFBox
+     */
+    public static int getCompressionLevel()
+    {
+        int compressionLevel = Deflater.DEFAULT_COMPRESSION;
+        try
+        {
+            compressionLevel = Integer.parseInt(System.getProperty(Filter.SYSPROP_DEFLATELEVEL, "-1"));
+        }
+        catch (NumberFormatException ex)
+        {
+            LOG.warn(ex.getMessage(), ex);
+        }
+        return Math.max(-1, Math.min(Deflater.BEST_COMPRESSION, compressionLevel));
+    }
 }

Modified: pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java?rev=1834741&r1=1834740&r2=1834741&view=diff
==============================================================================
--- pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java (original)
+++ pdfbox/branches/2.0/pdfbox/src/main/java/org/apache/pdfbox/filter/FlateFilter.java Sat Jun 30 14:21:33 2018
@@ -118,16 +118,7 @@ final class FlateFilter extends Filter
     protected void encode(InputStream input, OutputStream encoded, COSDictionary parameters)
             throws IOException
     {
-        int compressionLevel = Deflater.DEFAULT_COMPRESSION;
-        try
-        {
-            compressionLevel = Integer.parseInt(System.getProperty(Filter.SYSPROP_DEFLATELEVEL, "-1"));
-        }
-        catch (NumberFormatException ex)
-        {
-            LOG.warn(ex.getMessage(), ex);
-        }
-        compressionLevel = Math.max(-1, Math.min(Deflater.BEST_COMPRESSION, compressionLevel));
+        int compressionLevel = getCompressionLevel();
         Deflater deflater = new Deflater(compressionLevel);
         DeflaterOutputStream out = new DeflaterOutputStream(encoded, deflater);
         int amountRead;