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 2021/05/04 16:40:29 UTC

svn commit: r1889495 - in /pdfbox/branches/2.0/examples/src: main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java

Author: tilman
Date: Tue May  4 16:40:29 2021
New Revision: 1889495

URL: http://svn.apache.org/viewvc?rev=1889495&view=rev
Log:
PDFBOX-5186: add test for shading creation

Added:
    pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java   (with props)
Modified:
    pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java

Modified: pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java?rev=1889495&r1=1889494&r2=1889495&view=diff
==============================================================================
--- pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java (original)
+++ pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreateGradientShadingPDF.java Tue May  4 16:40:29 2021
@@ -15,12 +15,11 @@
  */
 package org.apache.pdfbox.examples.pdmodel;
 
-import java.awt.image.BufferedImage;
-import java.io.File;
 import java.io.IOException;
 import java.io.OutputStream;
-import javax.imageio.ImageIO;
+
 import javax.imageio.stream.MemoryCacheImageOutputStream;
+
 import org.apache.pdfbox.cos.COSArray;
 import org.apache.pdfbox.cos.COSDictionary;
 import org.apache.pdfbox.cos.COSInteger;
@@ -37,7 +36,6 @@ import org.apache.pdfbox.pdmodel.graphic
 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.rendering.PDFRenderer;
 
 /**
  * This example creates a PDF with type 2 (axial) and type 3 (radial) shadings with a type 2
@@ -194,12 +192,6 @@ public class CreateGradientShadingPDF
             
             document.save(file);
             document.close();
-            
-            // render the PDF and save it into a PNG file
-            document = PDDocument.load(new File(file));
-            BufferedImage bim = new PDFRenderer(document).renderImageWithDPI(0, 100);
-            ImageIO.write(bim, "png", new File(file + ".png"));
-            document.close();
         }
         finally
         {

Added: pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java?rev=1889495&view=auto
==============================================================================
--- pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java (added)
+++ pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java Tue May  4 16:40:29 2021
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.pdfbox.examples.pdmodel;
+
+import java.awt.Color;
+import java.awt.image.BufferedImage;
+import java.io.File;
+import java.io.IOException;
+import java.util.HashSet;
+import java.util.Set;
+import org.apache.pdfbox.pdmodel.PDDocument;
+import org.apache.pdfbox.rendering.PDFRenderer;
+import org.junit.Assert;
+import org.junit.Test;
+
+/**
+ *
+ * @author Tilman Hausherr
+ */
+public class TestCreateGradientShadingPDF
+{
+    @Test
+    public void testCreateGradientShading() throws IOException
+    {
+        String filename = "target/GradientShading.pdf";
+
+        CreateGradientShadingPDF creator = new CreateGradientShadingPDF();
+        creator.create(filename);
+
+        PDDocument document = PDDocument.load(new File(filename));
+        Set<Color> set = new HashSet<Color>();
+        BufferedImage bim = new PDFRenderer(document).renderImage(0);
+        for (int x = 0; x < bim.getWidth(); ++x)
+        {
+            for (int y = 0; y < bim.getHeight(); ++y)
+            {
+                set.add(new Color(bim.getRGB(x, y)));
+            }
+        }
+        Assert.assertTrue(set.size() > 10000); // 10258 different colors on windows 10
+        document.close();
+    }
+}

Propchange: pdfbox/branches/2.0/examples/src/test/java/org/apache/pdfbox/examples/pdmodel/TestCreateGradientShadingPDF.java
------------------------------------------------------------------------------
    svn:eol-style = native