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 2014/03/08 14:17:17 UTC

svn commit: r1575540 - /pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Author: tilman
Date: Sat Mar  8 13:17:17 2014
New Revision: 1575540

URL: http://svn.apache.org/r1575540
Log:
PDFBOX-1966: Type 1, 4 and 5 shadings for shFill(); use transparency for type 6 and 7; DRY principle will be applied later

Modified:
    pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java

Modified: pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java?rev=1575540&r1=1575539&r2=1575540&view=diff
==============================================================================
--- pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java (original)
+++ pdfbox/trunk/pdfbox/src/main/java/org/apache/pdfbox/rendering/PageDrawer.java Sat Mar  8 13:17:17 2014
@@ -71,9 +71,15 @@ import org.apache.pdfbox.pdmodel.graphic
 import org.apache.pdfbox.pdmodel.graphics.pattern.PDTilingPattern;
 import org.apache.pdfbox.pdmodel.graphics.shading.AxialShadingPaint;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShading;
+import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType1;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType2;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType3;
+import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType4;
+import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingType5;
 import org.apache.pdfbox.pdmodel.graphics.shading.RadialShadingPaint;
+import org.apache.pdfbox.pdmodel.graphics.shading.Type1ShadingPaint;
+import org.apache.pdfbox.pdmodel.graphics.shading.Type4ShadingPaint;
+import org.apache.pdfbox.pdmodel.graphics.shading.Type5ShadingPaint;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAnnotation;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceDictionary;
 import org.apache.pdfbox.pdmodel.interactive.annotation.PDAppearanceStream;
@@ -836,8 +842,7 @@ public class PageDrawer extends PDFStrea
         switch (shadingType)
         {
         case 1:
-            // TODO
-            LOG.debug("Function based shading not yet supported");
+            paint = new Type1ShadingPaint((PDShadingType1) shading, ctm, pageHeight);
             break;
         case 2:
             paint = new AxialShadingPaint((PDShadingType2) shading, ctm, pageHeight);
@@ -846,11 +851,16 @@ public class PageDrawer extends PDFStrea
             paint = new RadialShadingPaint((PDShadingType3) shading, ctm, pageHeight);
             break;
         case 4:
+            paint = new Type4ShadingPaint((PDShadingType4) shading, ctm, pageHeight);
+            break;
         case 5:
+            paint = new Type5ShadingPaint((PDShadingType5) shading, ctm, pageHeight);
+            break;
         case 6:
         case 7:
             // TODO
             LOG.debug("Shading type " + shadingType + " not yet supported");
+            paint = new Color(0, 0, 0, 0); // transparent
             break;
         default:
             throw new IOException("Invalid ShadingType " + shadingType + " for Shading " + shadingName);