Java Tutorial/PDF/Action
Содержание
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>