Java Tutorial/PDF/Chunk

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

Background of a chunk

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; import com.lowagie.text.Phrase; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 10, Font.BOLD);
   font.setColor(new Color(0xFF, 0xFF, 0xFF));
   Chunk fox = new Chunk("this is a", font);
   fox.setBackground(new Color(0xa5, 0x2a, 0x2a));
   Phrase p = new Phrase(fox);
   p.add(" test");
   Chunk dog = new Chunk(" another test", new Font(Font.TIMES_ROMAN, 14, Font.ITALIC));
   dog.setBackground(new Color(0xFF, 0x00, 0x00), 10, -30, 20, -10);
   p.add(dog);
   document.add(p);
   document.close();
 }

}</source>





Chunk in bold

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Chunk; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk bold = new Chunk("This looks like Font.BOLD");
   bold.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE, 0.5f, null);
   document.add(bold);
   document.close();
 }

}</source>





Chunk.NEWLINE

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk c = new Chunk("this is a test");
   float w = c.getWidthPoint();
   Paragraph p = new Paragraph("The width of the chunk: "");
   p.add(c);
   p.add("" is ");
   
   p.add(String.valueOf(w));
   p.add(" points or ");
   p.add(String.valueOf(w / 72f));
   p.add(" inches or ");
   p.add(String.valueOf(w / 72f * 2.54f));
   p.add(" cm.");
   document.add(p);
   document.add(Chunk.NEWLINE);
   document.add(c);
   document.close();
 }

}</source>





Chunk Text Render Mode: PdfContentByte.TEXT_RENDER_MODE_FILL

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 20);
   Chunk chunk = new Chunk("this is a test.", font);
   chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL, 0f, new Color(0xFF, 0x00, 0x00));
   document.add(new Paragraph(chunk));
   
   
   document.close();
 }

}</source>





Chunk Text Render Mode: PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 20);
   Chunk chunk = new Chunk("this is a test.", font);
   chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE, 0f, new Color(0xFF, 0x00, 0x00));
   document.add(new Paragraph(chunk));
   
   
   document.close();
 }

}</source>





Chunk Text Render Mode: PdfContentByte.TEXT_RENDER_MODE_INVISIBLE

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 20);
   Chunk chunk = new Chunk("this is a test.", font);
   chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE, 0f, new Color(0xFF, 0x00, 0x00));
   document.add(new Paragraph(chunk));
   
   
   document.close();
 }

}</source>





Chunk Text Render Mode:PdfContentByte.TEXT_RENDER_MODE_STROKE

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 20);
   Chunk chunk = new Chunk("this is a test.", font);
   chunk.setTextRenderMode(PdfContentByte.TEXT_RENDER_MODE_STROKE, 0f, new Color(0xFF, 0x00, 0x00));
   document.add(new Paragraph(chunk));
   
   
   document.close();
 }

}</source>





Chunk Underline

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; 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.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font(Font.COURIER, 10, Font.BOLD);
   font.setColor(new Color(0xFF, 0xFF, 0xFF));
   Chunk fox = new Chunk("this is a ", font);
   Chunk jumps = new Chunk(" test ", new Font());
   Chunk dog = new Chunk(" another ", new Font(Font.TIMES_ROMAN, 14, Font.ITALIC));
   dog.setUnderline(new Color(0xFF, 0x00, 0x00), 3.0f, 0.0f, -5.0f , 0.0f,
       PdfContentByte.LINE_CAP_ROUND);
   document.add(fox);
   document.add(jumps);
   document.add(dog);
   document.close();
 }

}</source>





Chunk with action

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font();
   font.setStyle(Font.UNDERLINE);
   Chunk chunk = new Chunk("jexp", font);
   chunk.setAction(new PdfAction("http://www.jexp.ru"));
   document.add(chunk);
   document.close();
 }

}</source>





Chunk with anchor

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Font font = new Font();
   font.setStyle(Font.UNDERLINE);
   Chunk chunk = new Chunk("jexp", font);
   chunk.setAnchor("http://www.jexp.ru");
   document.add(chunk);
   document.close();
 }

}</source>





Create chunk from string

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk space = new Chunk("asdf");
   Paragraph paragraph = new Paragraph();
   paragraph.add(space);
   document.add(paragraph);
   
   
   document.close();
 }

}</source>





Create Phase from chunk

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Element; import com.lowagie.text.Font; import com.lowagie.text.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk space = new Chunk("asdf");
   Phrase phrase2 = new Phrase(new Chunk("asdf", new Font(Font.TIMES_ROMAN)));
   Paragraph paragraph = new Paragraph();
   paragraph.add(space);
   paragraph.add(phrase2);
   paragraph.setSpacingBefore(20);
   paragraph.setAlignment(Element.ALIGN_JUSTIFIED);
   document.add(paragraph);
   
   
   document.close();
 }

}</source>





Local Destination

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; import com.lowagie.text.Document; import com.lowagie.text.Font; import com.lowagie.text.FontFactory; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfWriter; public class MainClass {

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter writerA = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   PdfWriter writerB = PdfWriter.getInstance(document, new FileOutputStream("3.pdf"));
   document.open();
   Font font = FontFactory.getFont(FontFactory.HELVETICA, 12, Font.UNDERLINE, new Color(0, 0, 255));
   Paragraph p1 = new Paragraph("1");
   Chunk chunk = new Chunk(" 2", font);
   chunk.setRemoteGoto("dog.pdf", "2");
   p1.add(chunk);
   Paragraph p3 = new Paragraph("test");
   p3.add(new Chunk("test.", font).setLocalDestination("2"));
   writerB.pause();
   document.add(p1);
   writerB.resume();
   writerA.pause();
   document.add(p3);
   writerB.pause();
   document.newPage();
   document.add(new Paragraph("page 2"));
   document.newPage();
   document.add(new Paragraph("page 3"));
   writerB.resume();
   document.close();
 }

}</source>





PDF file with hyphenated text

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document(PageSize.A6);
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   document.setMarginMirroring(true);
   Chunk ck = new Chunk("this is a test");
   HyphenationAuto auto = new HyphenationAuto("en", "GB", 2, 2);
   ck.setHyphenation(auto);
   Paragraph p = new Paragraph(ck);
   p.setAlignment(Paragraph.ALIGN_JUSTIFIED);
   document.add(p);
   document.close();
 }

}</source>





Scale Chunk

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk c = new Chunk("this is a test");
   float w = c.getWidthPoint();
   Paragraph p = new Paragraph("The width of the chunk: "");
   p.add(c);
   p.add("" is ");
   
   p.add(String.valueOf(w));
   p.add(" points or ");
   p.add(String.valueOf(w / 72f));
   p.add(" inches or ");
   p.add(String.valueOf(w / 72f * 2.54f));
   p.add(" cm.");
   document.add(p);
   document.add(c);
   c.setHorizontalScaling(0.5f);
   document.add(c);
   document.close();
 }

}</source>





Skew a chunk

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   
   Paragraph p;
   Chunk chunk;
   p = new Paragraph();
   chunk = new Chunk(" this ");
   chunk.setSkew(15f, -30f);
   p.add(chunk);
   chunk = new Chunk(" is a ");
   chunk.setSkew(15f, 15f);
   p.add(chunk);
   chunk = new Chunk(" test.");
   chunk.setSkew(-30f, 15f);
   p.add(chunk);
   document.add(p);
   
   
   document.close();
 }

}</source>





Use TextRise of a chunk to create supscript and subscript

   <source lang="java">

import java.awt.Color; import java.io.FileOutputStream; import com.lowagie.text.Chunk; 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 document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   float textrise = 6.0f;
   Chunk c;
   for (String s : "this is a test".split(" ")) {
     c = new Chunk(s);
     c.setTextRise(textrise);
     c.setUnderline(new Color(0xC0, 0xC0, 0xC0), 0.2f, 0.0f, 0.0f, 0.0f,
         PdfContentByte.LINE_CAP_BUTT);
     document.add(c);
     textrise -= 2.0f;
   }
   document.close();
 }

}</source>





Width of a chunk

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document document = new Document();
   PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Chunk c = new Chunk("this is a test");
   float w = c.getWidthPoint();
   Paragraph p = new Paragraph("The width of the chunk: "");
   p.add(c);
   p.add("" is ");
   p.add(String.valueOf(w));
   p.add(" points or ");
   p.add(String.valueOf(w / 72f));
   p.add(" inches or ");
   p.add(String.valueOf(w / 72f * 2.54f));
   p.add(" cm.");
   document.add(p);
   document.add(c);
   document.close();
 }

}</source>