Java Tutorial/PDF/Jump

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

Go to page 2

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.Paragraph; import com.lowagie.text.pdf.PdfAction; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfDestination; 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();
   document.add(new Paragraph("1"));
   document.newPage();
   document.add(new Paragraph("2"));
   PdfContentByte cb = writer.getDirectContent();
   cb.localDestination("page2", new PdfDestination(PdfDestination.XYZ, -1, 10000, 0));
   writer.setOpenAction("page2");
   
   document.close();
 }

}</source>





Link to a Pdf file

   <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 p4 = new Paragraph("jump to a ");
   p4.add(new Chunk("specific page on another document", font).setRemoteGoto("3.pdf", 3));
   writerB.pause();
   document.add(p1);
   writerB.resume();
   writerA.pause();
   document.add(p4);
   writerB.pause();
   document.newPage();
   document.add(new Paragraph("page 2"));
   document.newPage();
   document.add(new Paragraph("page 3"));
   writerB.resume();
   document.close();
 }

}</source>





Remote Goto

   <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 p2 = new Paragraph("test");
   writerB.pause();
   document.add(p1);
   writerB.resume();
   document.add(p2);
   writerA.resume();
   writerB.pause();
   document.newPage();
   document.add(new Paragraph("page 2"));
   document.newPage();
   document.add(new Paragraph("page 3"));
   writerB.resume();
   document.close();
 }

}</source>





Set Local Destination for 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.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.getInstance(document, new FileOutputStream("2.pdf"));
   document.open();
   Paragraph p1 = new Paragraph("this is a test");
   p1.add(new Chunk(" another test ", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL,
       new Color(0, 0, 255))).setLocalGoto("jump"));
   p1.add("the lazy dog.");
   Paragraph p2 = new Paragraph("test");
   Paragraph p3 = new Paragraph("test 2");
   p3.add(new Chunk(" has jumped ", FontFactory.getFont(FontFactory.HELVETICA, 12, Font.NORMAL,
       new Color(0, 255, 0))).setLocalDestination(" cat "));
   p3.add(" dog.");
   document.add(p1);
   document.add(p2);
   document.add(p2);
   document.add(p2);
   document.add(p2);
   document.add(p2);
   document.add(p2);
   document.add(p2);
   document.add(p3);
   document.close();
 }

}</source>





Set up PdfDestination

   <source lang="java">

import java.io.FileOutputStream; import com.lowagie.text.Document; import com.lowagie.text.pdf.PdfContentByte; import com.lowagie.text.pdf.PdfDestination; import com.lowagie.text.pdf.PdfOutline; import com.lowagie.text.pdf.PdfTemplate; 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"));
   writer.setViewerPreferences(PdfWriter.PageModeUseOutlines);
   document.open();
   PdfContentByte cb = writer.getDirectContent();
   PdfTemplate template = cb.createTemplate(25, 25);
   template.moveTo(0, 13);
   template.lineTo(50, 13);
   template.stroke();
   cb.addTemplate(template, 87, 87);
   PdfDestination d1 = new PdfDestination(PdfDestination.XYZ, 300, 800, 0);
   PdfDestination d2 = new PdfDestination(PdfDestination.FITH, 500);
   PdfDestination d4 = new PdfDestination(PdfDestination.FITBV, 100);
   PdfDestination d5 = new PdfDestination(PdfDestination.FIT);
   PdfOutline root = cb.getRootOutline();
   PdfOutline out1 = new PdfOutline(root, d1, "root", true);
   PdfOutline out2 = new PdfOutline(out1, d2, "sub 1", false);
   new PdfOutline(out2, d4, "sub 2.1");
   new PdfOutline(out2, d5, "sub 2.2");
   document.close();
 }

}</source>





Use SimpleNamedDestination

   <source lang="java">

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

 public static void main(String[] args) throws Exception {
   Document remote = new Document();
   PdfWriter.getInstance(remote, new FileOutputStream("remote.pdf"));
   remote.open();
   remote.add(new Paragraph("another"));
   remote.newPage();
   Paragraph p = new Paragraph("This paragraph contains a ");
   p.add(new Chunk("local destination").setLocalDestination("test"));
   remote.add(p);
   remote.close();
   PdfReader reader = new PdfReader("remote.pdf");
   HashMap map = SimpleNamedDestination.getNamedDestination(reader, false);
   SimpleNamedDestination.exportToXML(map, new FileOutputStream("remote.xml"), "ISO8859-1", true);
 }

}</source>