Java Tutorial/PDF/Action

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

document level JavaScript

   <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.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();
   writer.addJavaScript("function saySomething(s) {app.alert(s)}", false);
   writer.setAdditionalAction(PdfWriter.DOCUMENT_CLOSE, PdfAction.javaScript(
       "saySomething("hi");\r", writer));
   document.add(new Paragraph("PDF document with a JavaScript function."));
   document.close();
 }

}</source>





Generates a file with a launch action

   <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.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();
   Paragraph p = new Paragraph(new Chunk("Click to open test.txt in Notepad.")
       .setAction(new PdfAction("c:/windows/notepad.exe", "test.txt", "open", "c:\\")));
   document.add(p);
   document.close();
 }

}</source>





Jump with PdfAction

   <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.PdfAction; 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();
   Document remote = new Document();
   PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("2.pdf"));
   PdfWriter.getInstance(remote, new FileOutputStream("remote.pdf"));
   document.open();
   remote.open();
   PdfAction action = PdfAction.gotoLocalPage(2, new PdfDestination(PdfDestination.XYZ, -1, 10000,
       0), writer);
   writer.setOpenAction(action);
   document.add(new Paragraph("A"));
   document.newPage();
   document.add(new Paragraph("B"));
   document.add(new Chunk("go to page 1").setAction(PdfAction.gotoLocalPage(1, new PdfDestination(
       PdfDestination.FITH, 500), writer)));
   document.add(Chunk.NEWLINE);
   document.add(new Chunk("go to another document").setAction(PdfAction.gotoRemotePage(
       "remote.pdf", "test", false, true)));
   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);
   document.close();
   remote.close();
 }

}</source>





named actions

   <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.Paragraph; import com.lowagie.text.Phrase; import com.lowagie.text.pdf.PdfAction; import com.lowagie.text.pdf.PdfPTable; 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();
   PdfPTable table = new PdfPTable(4);
   table.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
   table
       .addCell(new Phrase(new Chunk("First Page").setAction(new PdfAction(PdfAction.FIRSTPAGE))));
   table.addCell(new Phrase(new Chunk("Prev Page").setAction(new PdfAction(PdfAction.PREVPAGE))));
   table.addCell(new Phrase(new Chunk("Next Page").setAction(new PdfAction(PdfAction.NEXTPAGE))));
   table.addCell(new Phrase(new Chunk("Last Page").setAction(new PdfAction(PdfAction.LASTPAGE))));
   Paragraph p = new Paragraph(new Chunk("Click to print").setAction(new PdfAction(
       PdfAction.PRINTDIALOG)));
   for (int k = 1; k <= 30; ++k) {
     document.add(new Paragraph("This is page " + k));
     document.add(Chunk.NEWLINE);
     document.add(table);
     document.add(p);
     document.newPage();
   }
   document.close();
 }

}</source>