Java Tutorial/PDF/Action

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

document level JavaScript

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();
  }
}





Generates a file with a launch action

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();
  }
}





Jump with PdfAction

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();
  }
}





named actions

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();
  }
}