Author: phancock
Date: Thu Sep 13 12:45:27 2012
New Revision: 1384310

URL: http://svn.apache.org/viewvc?rev=1384310&view=rev
Log:
Bugzilla #53865:  Add Rows per Strip configuration for Tiff renderer

Modified:
    xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.5svn.jar
    xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
    
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
    xmlgraphics/fop/trunk/status.xml
    
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
    
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
    
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java

Modified: xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.5svn.jar
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/lib/xmlgraphics-commons-1.5svn.jar?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
Binary files - no diff available.

Modified: xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml 
(original)
+++ xmlgraphics/fop/trunk/src/documentation/content/xdocs/trunk/output.xml Thu 
Sep 13 12:45:27 2012
@@ -1270,6 +1270,7 @@ Note that the value of the encoding attr
 <source><![CDATA[<renderer mime="image/tiff">
   <transparent-page-background>true</transparent-page-background>
   <compression>CCITT T.6</compression>
+  <single-strip>true</single-strip>
   <fonts><!-- described elsewhere --></fonts>
 </renderer>]]></source>
       <p>
@@ -1303,6 +1304,10 @@ Note that the value of the encoding attr
         added separately. The internal TIFF codec from XML Graphics Commons 
only supports PackBits,
         Deflate and JPEG compression for writing.
       </note>
+      <p>
+          The default value for the <code>"single-strip"</code> is 
<code>"false"</code> resulting in the RowsPerStrip Tiff Tag equal to the number 
of rows.
+          If set to <code>true</code> RowsPerStrip is set to 1.
+      </p>
     </section>
     <section id="bitmap-rendering-options">
       <title>Runtime Rendering Options</title>

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFDocumentHandler.java
 Thu Sep 13 12:45:27 2012
@@ -19,9 +19,12 @@
 
 package org.apache.fop.render.bitmap;
 
+import org.apache.xmlgraphics.image.writer.ResolutionUnit;
+
 import org.apache.fop.apps.MimeConstants;
 import 
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
 import org.apache.fop.render.intermediate.IFContext;
+import org.apache.fop.render.intermediate.IFDocumentHandler;
 import org.apache.fop.render.intermediate.IFDocumentHandlerConfigurator;
 
 /**
@@ -32,6 +35,7 @@ public class TIFFDocumentHandler extends
 
     TIFFDocumentHandler(IFContext context) {
         super(context);
+        
getSettings().getWriterParams().setResolutionUnit(ResolutionUnit.CENTIMETER);
     }
 
     /** {@inheritDoc} */

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfig.java
 Thu Sep 13 12:45:27 2012
@@ -23,21 +23,24 @@ import java.util.EnumMap;
 
 import org.apache.avalon.framework.configuration.Configuration;
 
-import org.apache.xmlgraphics.util.MimeConstants;
-
 import org.apache.fop.apps.FOPException;
 import org.apache.fop.apps.FOUserAgent;
+import org.apache.fop.apps.MimeConstants;
 import org.apache.fop.fonts.DefaultFontConfig;
 import org.apache.fop.fonts.DefaultFontConfig.DefaultFontConfigParser;
 import org.apache.fop.render.RendererConfigOption;
 
+import static org.apache.fop.render.bitmap.TIFFCompressionValue.PACKBITS;
+
 /**
  * The renderer configuration object for the TIFF renderer.
  */
 public final class TIFFRendererConfig extends BitmapRendererConfig {
 
     public enum TIFFRendererOption implements RendererConfigOption {
-        COMPRESSION("compression", TIFFCompressionValue.PACKBITS);
+        COMPRESSION("compression", PACKBITS),
+        /** option to encode one row per strip or a all rows in a single 
strip*/
+        SINGLE_STRIP("single-strip", Boolean.FALSE);
 
         private final String name;
         private final Object defaultValue;
@@ -68,6 +71,14 @@ public final class TIFFRendererConfig ex
     }
 
     /**
+     * @return True if all rows are contained in a single strip, False each 
strip contains one row or null
+     * if not set.
+     */
+    public Boolean isSingleStrip() {
+        return (Boolean) params.get(TIFFRendererOption.SINGLE_STRIP);
+    }
+
+    /**
      * The TIFF renderer configuration parser.
      */
     public static final class TIFFRendererConfigParser extends 
BitmapRendererConfigParser {
@@ -94,6 +105,8 @@ public final class TIFFRendererConfig ex
             if (cfg != null) {
                 setParam(TIFFRendererOption.COMPRESSION,
                         TIFFCompressionValue.getType(getValue(cfg, 
TIFFRendererOption.COMPRESSION)));
+                setParam(TIFFRendererOption.SINGLE_STRIP, 
Boolean.valueOf(getValue(cfg,
+                                TIFFRendererOption.SINGLE_STRIP)));
             }
             return config;
         }

Modified: 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
 (original)
+++ 
xmlgraphics/fop/trunk/src/java/org/apache/fop/render/bitmap/TIFFRendererConfigurator.java
 Thu Sep 13 12:45:27 2012
@@ -76,7 +76,12 @@ public class TIFFRendererConfigurator ex
         }
     }
 
-    /** {@inheritDoc} */
+    private boolean isSingleStrip(TIFFRendererConfig config) {
+        Boolean singleRowPerStrip = config.isSingleStrip();
+        return singleRowPerStrip == null ? false : singleRowPerStrip;
+    }
+
+    @Override
     public void configure(IFDocumentHandler documentHandler) throws 
FOPException {
         final TIFFRendererConfig config = (TIFFRendererConfig) 
getRendererConfig(documentHandler);
         if (config != null) {
@@ -84,6 +89,7 @@ public class TIFFRendererConfigurator ex
             BitmapRenderingSettings settings = tiffHandler.getSettings();
             configure(documentHandler, settings, new 
TIFFRendererConfigParser());
             setCompressionMethod(config.getCompressionType(), settings);
+            settings.getWriterParams().setSingleStrip(isSingleStrip(config));
         }
     }
 

Modified: xmlgraphics/fop/trunk/status.xml
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/status.xml?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- xmlgraphics/fop/trunk/status.xml (original)
+++ xmlgraphics/fop/trunk/status.xml Thu Sep 13 12:45:27 2012
@@ -62,6 +62,11 @@
       documents. Example: the fix of marks layering will be such a case when 
it's done.
     -->
     <release version="FOP Trunk" date="TBD">
+      <action context="Renderers" dev="PH" type="add" fixes-bug="53865" 
importance="low">
+        Added configuration for RowPerStrip configuration in the Tiff renderer.
+        RowsPerStrip can be configured to 1 or to the total # of rows.
+        See docs for fop.xconf configuration details.
+      </action>
       <action context="Layout" dev="VH" type="fix" fixes-bug="53598" 
due-to="Robert Meyer">
         Always set the breakClass field to a legal value in BreakElement, so 
as to avoid 
         IllegalArgumentExceptions in other parts of the code.

Modified: 
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
 (original)
+++ 
xmlgraphics/fop/trunk/test/java/org/apache/fop/apps/TIFFRendererConfBuilder.java
 Thu Sep 13 12:45:27 2012
@@ -20,7 +20,7 @@
 package org.apache.fop.apps;
 
 import static 
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererOption.COMPRESSION;
-
+import static 
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererOption.SINGLE_STRIP;
 public class TIFFRendererConfBuilder extends BitmapRendererConfBuilder {
 
     public TIFFRendererConfBuilder() {
@@ -31,4 +31,9 @@ public class TIFFRendererConfBuilder ext
         createTextElement(COMPRESSION, mode);
         return this;
     }
+
+    public TIFFRendererConfBuilder setSingleStrip(boolean single) {
+        createTextElement(SINGLE_STRIP, String.valueOf(single));
+        return this;
+    }
 }

Modified: 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
 (original)
+++ 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfigParserTestCase.java
 Thu Sep 13 12:45:27 2012
@@ -26,9 +26,11 @@ import org.apache.fop.apps.TIFFRendererC
 import 
org.apache.fop.render.bitmap.TIFFRendererConfig.TIFFRendererConfigParser;
 
 import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 public class TIFFRendererConfigParserTestCase
-        extends AbstractBitmapRendererConfigParserTester {
+extends AbstractBitmapRendererConfigParserTester {
 
     public TIFFRendererConfigParserTestCase() {
         super(new TIFFRendererConfigParser());
@@ -52,4 +54,12 @@ public class TIFFRendererConfigParserTes
             assertEquals(value, getConfig().getCompressionType());
         }
     }
+
+    @Test
+    public void testSingleStrip() throws Exception {
+        parseConfig(createRenderer().setSingleStrip(true));
+        assertTrue(getConfig().isSingleStrip());
+        parseConfig(createRenderer().setSingleStrip(false));
+        assertFalse(getConfig().isSingleStrip());
+    }
 }

Modified: 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
URL: 
http://svn.apache.org/viewvc/xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java?rev=1384310&r1=1384309&r2=1384310&view=diff
==============================================================================
--- 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
 (original)
+++ 
xmlgraphics/fop/trunk/test/java/org/apache/fop/render/bitmap/TIFFRendererConfiguratorTestCase.java
 Thu Sep 13 12:45:27 2012
@@ -23,7 +23,6 @@ import java.awt.image.BufferedImage;
 
 import org.junit.Test;
 
-import static org.junit.Assert.assertEquals;
 
 import org.apache.fop.apps.FopConfBuilder;
 import org.apache.fop.apps.MimeConstants;
@@ -32,6 +31,9 @@ import org.apache.fop.render.bitmap.TIFF
 
 import static org.apache.fop.render.bitmap.TIFFCompressionValue.CCITT_T4;
 import static org.apache.fop.render.bitmap.TIFFCompressionValue.CCITT_T6;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
 
 public class TIFFRendererConfiguratorTestCase extends 
AbstractBitmapRendererConfiguratorTest {
 
@@ -61,4 +63,13 @@ public class TIFFRendererConfiguratorTes
             }
         }
     }
+
+    @Test
+    public void testSingleStrip() throws Exception {
+        parseConfig(createBuilder().setSingleStrip(true));
+        assertTrue(settings.getWriterParams().isSingleStrip());
+        parseConfig(createBuilder().setSingleStrip(false));
+        assertFalse(settings.getWriterParams().isSingleStrip());
+    }
+
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to