
文書プロパティに含まれる文書情報の取得
PDFが持つ文書プロパティから文書が持つ情報を取得できます。取得できる情報はタイトル、著者名、サブジェクト、キーワード、変換元のドキュメントを生成した準拠製品名、PDF変換を行った準拠製品名、作成日付、更新日付、そして準拠製品が独自に作成したカスタムプロパティです。
本サンプルプログラムでは、入力PDFの情報を表示します。表示する情報は、タイトル、著者名、サブジェクト、キーワード、変換元のドキュメントを生成した準拠製品名、PDF変換を行った準拠製品名、作成日付、更新日付、カスタムプロパティです。カスタムプロパティについては最初にその有無を確認し、ある場合にはそれぞれの名前と値を出力します。それぞれの情報は入力コンソール上に表示されます。
package cookbook;
import jp.co.antenna.ptl.*;
public class GetDocInfo {
    // そのクラスのusageを表示する関数
    private static void printUsage() {
        System.out.println("usage: java GetDocInfo 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 (PtlDocProperty docProperty = doc.getDocProperty(); //PDFの文書プロパティ
                 PtlDocInfo docinf = docProperty.getDocInfo();    //PDFの文書情報
                 // PDFのカスタムプロパティ
                 PtlCustomProperties customProperties = docProperty.getCustomProperties()) {
                // タイトル取得
                System.out.println("Title : " + docinf.getTitle());
                // 著者取得
                System.out.println("Author : " + docinf.getAuthor());
                // サブジェクト取得
                System.out.println("Subject : " + docinf.getSubject());
                // キーワード取得
                System.out.println("Keywords : " + docinf.getKeywords());
                // クリエータ取得
                System.out.println("Creator : " + docinf.getCreator());
                // プロデューサ取得
                System.out.println("Producer : " + docinf.getProducer());
                // 作成日付を取得
                try (PtlDate dateCreate = docinf.getCreationDate()) {
                    System.out.println("CreationDate : "
                        + dateCreate.getYear()
                        + "/" + dateCreate.getMonth()
                        + "/" + dateCreate.getDay()
                        + " " + dateCreate.getHour()
                        + ":" + dateCreate.getMin()
                        + ":" + dateCreate.getSec());
                }
                // 更新日付を取得
                try (PtlDate dateMod = docinf.getModDate()) {
                    System.out.println("ModDate : "
                        + dateMod.getYear()
                        + "/" + dateMod.getMonth()
                        + "/" + dateMod.getDay()
                        + " " + dateMod.getHour()
                        + ":" + dateMod.getMin()
                        + ":" + dateMod.getSec());
                }
                // カスタムプロパティが空かどうか判定
                System.out.println("");
                if(customProperties.isEmpty()){
                    //空の場合はそう表示する
                    System.out.println("このPDFにカスタムプロパティは設定されていません。");
                }else {  // カスタムプロパティが空でない場合に内容を取得する
                    System.out.println("このPDFのカスタムプロパティを表示します。");
                    int propertiesNum = customProperties.getCount();
                    for(int i = 0; i < propertiesNum; i++){
                        System.out.println("Custom Property No." + (i+1) +":");
                        try(PtlCustomProperty customProperty = customProperties.get(i)){
                            System.out.println("名前 : " + customProperty.getName());
                            System.out.println("値 : " + customProperty.getValue());
                            System.out.println("");
                        }
                    }
                }
            }
        }
	...【AppendAnnotStampDefault.javaと同じ処理のため省略
	  ・エラーメッセージ処理と出力】...
    }
}
GetDocInfo.java
C:\samples>java cookbook.GetDocInfo usage: java GetDocInfo in-pdf-file C:\samples>java cookbook.GetDocInfo annots.pdf Title : Author : Subject : Keywords : Creator : Antenna House ShunkanPDF Kakemasse 7 Producer : Antenna House PDF Output Library 2.6.0 (Windows) CreationDate : 2019/7/30 15:5:55 ModDate : 2019/12/2 18:59:38 このPDFにカスタムプロパティは設定されていません。 -- 完了 --