Java Tutorial/PDF/PdfContentByte

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

Clip a region

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Image; import com.lowagie.text.pdf.PdfContentByte; 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("clipping_path.pdf"));
   document.open();
   Image img = Image.getInstance("dog.jpg");
   float w = img.scaledWidth();
   float h = img.scaledHeight();
   PdfContentByte cb = writer.getDirectContent();
   cb.saveState();
   cb.circle(260, 700, 70);
   cb.clip();
   cb.newPath();
   cb.addImage(img, w, 0, 0, h, 36, 620);
   cb.restoreState();
   document.close();
 }

}</source>





Draw shape with PdfContentByte

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document.rupress = false;
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   document.add(new Paragraph("this is a test."));
   PdfContentByte cb = writer.getDirectContent();
   cb.moveTo(30, 70);
   cb.lineTo(49, 70);
   cb.lineTo(49, 80);
   cb.lineTo(30, 80);
   cb.closePath();
   cb.rectangle(30, 700, 460, 100);
   document.close();
 }

}</source>





Literal PdfContentByte

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document.rupress = false;
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("logo.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   String eye = "this is a test";
   cb.setLiteral(eye);
   document.close();
 }

}</source>





Position and resize an image

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Image; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document.rupress = false;
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   Image eye = Image.getInstance("iTextLogo.gif");
   eye.setAbsolutePosition(36, 780);
   cb.addImage(eye, true);
   cb.addImage(eye, 271, -50, -30, 550, 100, 100, true);
   document.close();
 }

}</source>





restore State

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document.rupress = false;
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   cb.saveState();
   cb.moveTo(72, 650);
   cb.lineTo(72, 600);
   cb.moveTo(144, 650);
   cb.lineTo(144, 600);
   cb.stroke();
   cb.restoreState();
   document.close();
 }

}</source>





Save paint state

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document.rupress = false;
   Document document = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   cb.saveState();
   for (int i = 25; i > 0; i--) {
     cb.setLineWidth((float) i / 10);
     cb.moveTo(40, 806 - (5 * i));
     cb.lineTo(320, 806 - (5 * i));
     cb.stroke();
   }
   cb.restoreState();
   document.close();
 }

}</source>