
PDFドキュメントに添付されている添付ファイルの情報を取得します。
PDF Tool APIで添付ファイルの情報を取得できます。取得できる情報は、PDFドキュメントに埋め込まれた添付ファイルの数、添付ファイルそれぞれにつけられた名前です。
添付ファイルの書き出しに先んじてどのインデックス番号がどのファイルかを判別できることで、適切なインデックス番号を指定する手がかりを得られます。
添付ファイルの書き出しに関しては後述の「3.1.3 添付ファイルの書き出し」を参照してください。
本サンプルプログラムでは、入力PDFを指定すると、そのPDFに埋め込まれた添付ファイルの総ファイル数とそれぞれに振られたインデックス番号ごとのファイル名を表示します。総ファイル数の情報は添付ファイルのコンテナから、各ファイル名はそれぞれの添付ファイルのクラスから取得します。
※:この添付ファイルコンテナには添付ファイル注釈の添付ファイルは含まれません
package cookbook;
import jp.co.antenna.ptl.*;
public class GetEmbedFileInfo {
// そのクラスのusageを表示する関数
private static void printUsage() {
System.out.println("usage: java GetEmbedFileInfo in-pdf-file");
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
if (args.length < 1) {
printUsage();
return;
}
try (PtlParamInput inputFile = new PtlParamInput(args[0]);
PtlPDFDocument doc = new PtlPDFDocument()) {
// PDFファイルをロード
doc.load(inputFile);
// 添付ファイルコンテナの取得
try (PtlEmbeddedFiles embeddedFiles = doc.getEmbeddedFiles()) {
// 添付ファイルコンテナが空かどうか
if (embeddedFiles.isEmpty()) {
System.out.println("添付ファイルコンテナは空");
return;
}
// 添付ファイル数の取得
int numOfEmbeddedFile = embeddedFiles.getCount();
System.out.println("添付ファイル数 : " + numOfEmbeddedFile);
for(int i=0; i<numOfEmbeddedFile; i++) {
try (PtlEmbeddedFile embeddedfile = embeddedFiles.get(i)) {
System.out.println("index num : " + i +
" の添付ファイル名 : " +
embeddedfile.getFileName());
}
}
}
}
...【AppendAnnotStampDefault.javaと同じ処理のため省略
・エラーメッセージ処理と出力】...
}
}
GetEmbedFileInfo.java
C:\samples>java cookbook.GetEmbedFileInfo usage: java GetEmbedFileInfo in-pdf-file C:\samples>java cookbook.GetEmbedFileInfo embeds.pdf 添付ファイル数 : 1 index num : 0 の添付ファイル名 : thepdf402.pdf -- 完了 --
入力PDFには、次図のように添付ファイル注釈(import.png)と添付ファイル(thepdf402.pdf)があります。本サンプルでは添付ファイルの情報のみを取得します。
