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);