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:16:35 UTC

svn commit: r1575539 - /pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java

Author: tilman
Date: Sat Mar  8 13:16:35 2014
New Revision: 1575539

URL: http://svn.apache.org/r1575539
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/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java

Modified: pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java?rev=1575539&r1=1575538&r2=1575539&view=diff
==============================================================================
--- pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java (original)
+++ pdfbox/branches/1.8/pdfbox/src/main/java/org/apache/pdfbox/pdfviewer/PageDrawer.java Sat Mar  8 13:16:35 2014
@@ -42,11 +42,17 @@ import org.apache.pdfbox.pdmodel.common.
 import org.apache.pdfbox.pdmodel.font.PDFont;
 import org.apache.pdfbox.pdmodel.graphics.PDGraphicsState;
 import org.apache.pdfbox.pdmodel.graphics.PDShading;
-import org.apache.pdfbox.pdmodel.graphics.shading.AxialShadingPaint;
 import org.apache.pdfbox.pdmodel.graphics.shading.PDShadingResources;
+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.Type1ShadingPaint;
+import org.apache.pdfbox.pdmodel.graphics.shading.AxialShadingPaint;
 import org.apache.pdfbox.pdmodel.graphics.shading.RadialShadingPaint;
+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;
@@ -571,9 +577,8 @@ public class PageDrawer extends PDFStrea
         switch (shadingType)
         {
             case 1:
-                // TODO
-                LOG.debug("Function based shading not yet supported");
-            break;
+                paint = new Type1ShadingPaint((PDShadingType1)shading, ctm, pageSize.height);
+                break;
             case 2:
                 paint = new AxialShadingPaint((PDShadingType2)shading, ctm, pageSize.height);
                 break;
@@ -581,11 +586,16 @@ public class PageDrawer extends PDFStrea
                 paint = new RadialShadingPaint((PDShadingType3)shading, ctm, pageSize.height);
                 break;
             case 4:
+                paint = new Type4ShadingPaint((PDShadingType4)shading, ctm, pageSize.height);
+                break;
             case 5:
+                paint = new Type5ShadingPaint((PDShadingType5)shading, ctm, pageSize.height);
+                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);