Quick Tips
Contents
[
Hide
]
This page contains some quick tips related to Aspose.PDF for Java API
Add JavaScript to PDF
The following code snippet can be used to set/add JavaScript to PDF file.
String path = "D:\\";
String fileOut = path + "JavaScript.pdf";
IDocument document = null;
try
{
document = new Document();
document.getPages().add();
document.getPages().add();
//Adding JavaScript at Document Level
//Instantiate JavascriptAction with desried JavaScript statement
JavascriptAction javaScript = new JavascriptAction("this.print({bUI:true,bSilent:false,bShrinkToFit:true});");
//Assigne JavascriptAction object to desired action of Document
document.setOpenAction(javaScript);
document.setOpenAction(new JavascriptAction("app.alert('Hello PDF')"));
//Adding JavaScript at Page Level
document.getActions().setBeforeClosing(new JavascriptAction("app.alert('document is closing')"));
document.getPages().get_Item(1).getActions().setOnOpen(new JavascriptAction("app.alert('page 1 is opened')"));
document.getPages().get_Item(2).getActions().setOnOpen(new JavascriptAction("app.alert('page 2 is opened')"));
document.getPages().get_Item(2).getActions().setOnClose(new JavascriptAction("app.alert('page 2 is closed')"));
document.save(fileOut);
}
finally { if (document != null) document.dispose(); document = null; }
Some more examples
// after printing
document.getActions().setAfterPrinting(new JavascriptAction("app.alert('File was printed')"));
// after saving
document.getActions().setAfterSaving(new JavascriptAction("app.alert('File was Saved')"));
Free utilized Memory
If you have completed the work with Aspose.PDF for Java and wants to clear the memory from different static instances, to make the maximum memory for other processes, you should execute following code line:
com.aspose.pdf.MemoryCleaner.clear();
Load PDF from ByteArrayInputStream
The following code snippet shows the steps to laod PDF file into ByteArray and then instantiate Document object with ByteArrayInputStream.
// source PDF file
java.io.File file = new java.io.File("c:/pdftest/result.pdf");
java.io.FileInputStream fis = new java.io.FileInputStream(file);
//System.out.println(file.exists() + "!!");
//InputStream in = resource.openStream();
java.io.ByteArrayOutputStream bos = new java.io.ByteArrayOutputStream();
byte[] buf = new byte[1024];
try {
for (int readNum; (readNum = fis.read(buf)) != -1;) {
bos.write(buf, 0, readNum); //no doubt here is 0
//Writes len bytes from the specified byte array starting at offset off to this byte array output stream.
System.out.println("read " + readNum + " bytes,");
}
} catch (java.io.IOException ex) {
}
byte[] bytes = bos.toByteArray();
// instantiate Document Object with ByteArrayInputStream while passing byte array as argument
com.aspose.pdf.Document doc = new com.aspose.pdf.Document(new java.io.ByteArrayInputStream(bytes));
// get the page count of PDF file
System.out.println(doc.getPages().size());
Save PDF to ByteArrayOutputStream
The following code snippet shows the steps to save resultant PDF file into ByteArrayOutputStream.
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document("source.pdf");
java.io.InputStream is = null;
java.io.ByteArrayOutputStream os = new java.io.ByteArrayOutputStream();
try{
pdfDocument.save(os,com.aspose.pdf.SaveFormat.Doc);
System.out.println(os.size());
is = new java.io.ByteArrayInputStream(os.toByteArray());
os.close();
os.flush();
pdfDocument.close();
}catch (Throwable e) {}