クイックヒント
Contents
[
Hide
]
このページには、Aspose.PDF for Java API に関連するいくつかのクイックヒントが含まれています
PDFにJavaScriptを追加
次のコードスニペットを使用して、PDFファイルにJavaScriptを設定/追加できます。
String path = "D:\\";
String fileOut = path + "JavaScript.pdf";
IDocument document = null;
try
{
document = new Document();
document.getPages().add();
document.getPages().add();
// ドキュメントレベルでのJavaScriptの追加
// 希望するJavaScript文を持つJavascriptActionをインスタンス化
JavascriptAction javaScript = new JavascriptAction("this.print({bUI:true,bSilent:false,bShrinkToFit:true});");
// JavascriptActionオブジェクトをDocumentの希望するアクションに割り当てる
document.setOpenAction(javaScript);
document.setOpenAction(new JavascriptAction("app.alert('Hello PDF')"));
// ページレベルでのJavaScriptの追加
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; }
いくつかの例
// 印刷後
document.getActions().setAfterPrinting(new JavascriptAction("app.alert('ファイルが印刷されました')"));
// 保存後
document.getActions().setAfterSaving(new JavascriptAction("app.alert('ファイルが保存されました')"));
使用されていないメモリの解放
Aspose.PDF for Javaを使用し終わった後に、他のプロセスのために最大限のメモリを確保したい場合は、次のコード行を実行する必要があります。
com.aspose.pdf.MemoryCleaner.clear();
ByteArrayInputStreamからPDFを読み込む
次のコードスニペットは、PDFファイルをByteArrayに読み込み、その後ByteArrayInputStreamでDocumentオブジェクトをインスタンス化する手順を示しています。
// ソースPDFファイル
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); //ここでは確かに0です
//指定されたバイト配列からオフセットoffで始まるlenバイトを書き込みます。
System.out.println("read " + readNum + " bytes,");
}
} catch (java.io.IOException ex) {
}
byte[] bytes = bos.toByteArray();
// バイト配列を引数として渡しながらByteArrayInputStreamでDocumentオブジェクトをインスタンス化
com.aspose.pdf.Document doc = new
com.aspose.pdf.Document(new java.io.ByteArrayInputStream(bytes));
// PDFファイルのページ数を取得
System.out.println(doc.getPages().size());
PDFをByteArrayOutputStreamに保存する
以下のコードスニペットは、結果のPDFファイルを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) {}