Java Tutorial/PDF/Pattern

Материал из Java эксперт
Перейти к: навигация, поиск

Create and use PdfGState

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.CMYKColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfGState; import com.lowagie.text.pdf.PdfShading; import com.lowagie.text.pdf.PdfShadingPattern; import com.lowagie.text.pdf.PdfTemplate; import com.lowagie.text.pdf.PdfTransparencyGroup; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   float gap = (document.getPageSize().width() - 400) / 3;
   pictureBackdrop(gap, 500, cb, writer);
   PdfTemplate tp;
   PdfTransparencyGroup group;
   tp = cb.createTemplate(200, 200);
   pictureCircles(0, 0, tp);
   group = new PdfTransparencyGroup();
   group.setIsolated(true);
   group.setKnockout(true);
   tp.setGroup(group);
   cb.addTemplate(tp, gap, 500);
   document.close();
 }
 public static void pictureBackdrop(float x, float y, PdfContentByte cb, PdfWriter writer) {
   PdfShading axial = PdfShading.simpleAxial(writer, x, y, x + 200, y, Color.yellow, Color.red);
   PdfShadingPattern axialPattern = new PdfShadingPattern(axial);
   cb.setShadingFill(axialPattern);
   cb.setColorStroke(Color.black);
   cb.setLineWidth(2);
   cb.rectangle(x, y, 200, 200);
   cb.fillStroke();
 }
 public static void pictureCircles(float x, float y, PdfContentByte cb) {
   PdfGState gs = new PdfGState();
   gs.setBlendMode(PdfGState.BM_MULTIPLY);
   gs.setFillOpacity(1f);
   cb.setGState(gs);
   cb.setColorFill(new CMYKColor(0f, 0f, 0f, 0.15f));
   cb.circle(x + 125, y + 75, 70);
   cb.fill();
   cb.circle(x + 125, y + 125, 70);
   cb.fill();
 }

}</source>





Line pattern

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PatternColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfPatternPainter; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   
   
   PdfPatternPainter line = cb.createPattern(5, 10, null);
   line.setLineWidth(1);
   line.moveTo(3, -1);
   line.lineTo(3, 11);
   line.stroke();
   PatternColor lines = new PatternColor(line);
   cb.setColorFill(lines);
   cb.rectangle(360, 716, 72, 72);
   cb.fillStroke();
   
   document.close();
 }

}</source>





Pattern of ellipses

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PatternColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfPatternPainter; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   
   
   PdfPatternPainter ellipse = cb.createPattern(15, 10, 20, 25);
   ellipse.setColorFill(new Color(0xFF, 0xFF, 0x00));
   ellipse.setColorStroke(new Color(0xFF, 0x00, 0x00));
   ellipse.ellipse(2f, 2f, 13f, 8f);
   ellipse.fillStroke();
   PatternColor ellipses = new PatternColor(ellipse);
   cb.setColorFill(ellipses);
   cb.rectangle(144, 716, 72, 72);
   cb.fillStroke();
   
   document.close();
 }

}</source>





Pdf Pattern Painter

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PatternColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfPatternPainter; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   
   
   PdfPatternPainter circle = cb.createPattern(15, 15, 10, 20, Color.blue);
   circle.circle(7.5f, 7.5f, 2.5f);
   circle.fill();
   PatternColor circles = new PatternColor(circle);
   cb.setColorFill(circles);
   cb.rectangle(252, 716, 72, 72);
   cb.fillStroke();
   
   document.close();
 }

}</source>





Square pattern

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PatternColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfPatternPainter; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   
   
   PdfPatternPainter square = cb.createPattern(15, 15);
   square.setColorFill(new Color(0xFF, 0xFF, 0x00));
   square.setColorStroke(new Color(0xFF, 0x00, 0x00));
   square.rectangle(5, 5, 5, 5);
   square.fillStroke();
   PatternColor squares = new PatternColor(square);
   cb.setColorFill(squares);
   cb.rectangle(36, 716, 72, 72);
   cb.fillStroke();
   
   document.close();
 }

}</source>





Use SpotColor

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import java.io.IOException; import com.lowagie.text.Document; import com.lowagie.text.DocumentException; import com.lowagie.text.pdf.CMYKColor; import com.lowagie.text.pdf.GrayColor; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfSpotColor; import com.lowagie.text.pdf.PdfWriter; import com.lowagie.text.pdf.SpotColor; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
     PdfWriter writer = PdfWriter.getInstance(
         document,
         new FileOutputStream("2.pdf"));
     document.open();
     PdfContentByte cb = writer.getDirectContent();
     PdfSpotColor psc_g = new PdfSpotColor("iTextSpotColorGray", 0.5f,
         new GrayColor(0.9f));
     PdfSpotColor psc_rgb = new PdfSpotColor("iTextSpotColorRGB", 0.9f,
         new Color(0x64, 0x95, 0xed));
     PdfSpotColor psc_cmyk = new PdfSpotColor("iTextSpotColorCMYK",
         0.25f, new CMYKColor(0.3f, .9f, .3f, .1f));
     SpotColor sc_g = new SpotColor(psc_g);
     SpotColor sc_rgb1 = new SpotColor(psc_rgb, 0.1f);
     SpotColor sc_cmyk = new SpotColor(psc_cmyk);
     cb.setColorFill(sc_g);
     cb.rectangle(36, 770, 36, 36);
     cb.fillStroke();
     cb.setColorFill(psc_g, psc_g.getTint());
     cb.rectangle(90, 770, 36, 36);
     cb.fillStroke();
     cb.setColorFill(psc_g, 1);
     cb.rectangle(252, 770, 36, 36);
     cb.fillStroke();
     cb.setColorFill(sc_rgb1);
     cb.rectangle(36, 716, 36, 36);
     cb.fillStroke();
     cb.setColorFill(psc_rgb, 0.9f);
     cb.rectangle(36, 662, 36, 36);
     cb.fillStroke();
     cb.setColorFill(sc_cmyk);
     cb.rectangle(36, 608, 36, 36);
     cb.fillStroke();
     cb.setColorFill(psc_cmyk, psc_cmyk.getTint());
     cb.rectangle(90, 608, 36, 36);
     cb.fillStroke();
   document.close();
 }

}</source>