7.1.1 文書情報の取得

images/GetDocInfo-top.png

狙い・効果

文書プロパティに含まれる文書情報の取得

処理の概要

PDFが持つ文書プロパティから文書が持つ情報を取得できます。取得できる情報はタイトル、著者名、サブジェクト、キーワード、変換元のドキュメントを生成した準拠製品名、PDF変換を行った準拠製品名、作成日付、更新日付、そして準拠製品が独自に作成したカスタムプロパティです。

本サンプルプログラムでは、入力PDFの情報を表示します。表示する情報は、タイトル、著者名、サブジェクト、キーワード、変換元のドキュメントを生成した準拠製品名、PDF変換を行った準拠製品名、作成日付、更新日付、カスタムプロパティです。カスタムプロパティについては最初にその有無を確認し、ある場合にはそれぞれの名前と値を出力します。それぞれの情報は入力コンソール上に表示されます。

PDF Tool APIの主な機能

プログラム例

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にカスタムプロパティは設定されていません。
-- 完了 --