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 2018/01/17 20:18:02 UTC

svn commit: r1821416 - /pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java

Author: tilman
Date: Wed Jan 17 20:18:02 2018
New Revision: 1821416

URL: http://svn.apache.org/viewvc?rev=1821416&view=rev
Log:
PDFBOX-4068: update pattern example to use the new content stream

Modified:
    pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java

Modified: pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java
URL: http://svn.apache.org/viewvc/pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java?rev=1821416&r1=1821415&r2=1821416&view=diff
==============================================================================
--- pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java (original)
+++ pdfbox/branches/2.0/examples/src/main/java/org/apache/pdfbox/examples/pdmodel/CreatePatternsPDF.java Wed Jan 17 20:18:02 2018
@@ -16,8 +16,8 @@
 
 package org.apache.pdfbox.examples.pdmodel;
 
+import java.awt.Color;
 import java.io.IOException;
-import java.io.OutputStream;
 import org.apache.pdfbox.cos.COSName;
 import org.apache.pdfbox.pdmodel.PDDocument;
 import org.apache.pdfbox.pdmodel.PDPage;
@@ -29,7 +29,6 @@ import org.apache.pdfbox.pdmodel.graphic
 import org.apache.pdfbox.pdmodel.graphics.color.PDDeviceRGB;
 import org.apache.pdfbox.pdmodel.graphics.color.PDPattern;
 import org.apache.pdfbox.pdmodel.graphics.pattern.PDTilingPattern;
-import org.apache.pdfbox.util.Charsets;
 
 /**
  * This is an example of how to create a page that uses patterns to paint areas.
@@ -63,13 +62,20 @@ public final class CreatePatternsPDF
         tilingPattern1.setYStep(10);
 
         COSName patternName1 = page.getResources().add(tilingPattern1);
-        //TODO 
-        // there's no way to create something like a PDPageContentStream, 
-        // so we'll do it the hard way
-        OutputStream os1 = tilingPattern1.getContentStream().createOutputStream();
+
+        PDPageContentStream cs1 = new PDPageContentStream(doc,
+                tilingPattern1,
+                tilingPattern1.getContentStream().createOutputStream());
         // Set color, draw diagonal line + 2 more diagonals so that corners look good
-        os1.write("1 0 0 RG 0 0 m 10 10 l -1 9 m 1 11 l 9 -1 m 11 1 l s".getBytes(Charsets.US_ASCII));
-        os1.close();
+        cs1.setStrokingColor(Color.red);
+        cs1.moveTo(0, 0);
+        cs1.lineTo(10, 10);
+        cs1.moveTo(-1, 9);
+        cs1.lineTo(1, 11);
+        cs1.moveTo(9, -1);
+        cs1.lineTo(11, 1);
+        cs1.stroke();
+        cs1.close();
 
         PDColor patternColor1 = new PDColor(patternName1, patternCS1);
 
@@ -86,10 +92,17 @@ public final class CreatePatternsPDF
         tilingPattern2.setYStep(10);
 
         COSName patternName2 = page.getResources().add(tilingPattern2);
-        OutputStream os2 = tilingPattern2.getContentStream().createOutputStream();
+
+        PDPageContentStream cs2 = new PDPageContentStream(doc, 
+                tilingPattern2, 
+                tilingPattern2.getContentStream().createOutputStream());
         // draw a cross
-        os2.write("0 5 m 10 5 l 5 0 m 5 10 l s".getBytes(Charsets.US_ASCII));
-        os2.close();
+        cs2.moveTo(0, 5);
+        cs2.lineTo(10, 5);
+        cs2.moveTo(5, 0);
+        cs2.lineTo(5, 10);
+        cs2.stroke();
+        cs2.close();
 
         // Uncolored pattern colorspace needs to know the colorspace
         // for the color values that will be passed when painting the fill