2.3.2 PDF/Aの種類の取得

GetPDFAType_Top

狙い・効果

読み込んだPDF/APDF/Aのタイプを表示します。

処理の概要

読み込んだPDF/AのタイプをPtlPDFDocument.PDFA_TYPEの列挙型定数で表します。

サンプルプログラムでは入力PDFがPDF/Aかどうかを判定し、PDF/Aのタイプを取得してコンソール上に表示します。

『PDF Tool API』の主な機能

表2.3 列挙型定数PtlPDFDocument.PDFA_TYPEと対応するPDF/Aのタイプ
列挙型定数
説明
PDFA_1A
PDF/A-1a
PDFA_1B
PDF/A-1b
PDFA_2A
PDF/A-2a
PDFA_2B
PDF/A-2b
PDFA_2U
PDF/A-2u
PDFA_3A
PDF/A-3a
PDFA_3B
PDF/A-3b
PDFA_3U
PDF/A-3u
PDFA_UNKNOWN
PDF/A-???

プログラム例

package cookbook;

import jp.co.antenna.ptl.*;

public class GetPDFAType {

    // そのクラスのusageを表示する関数
    public static void printUsage() {
        System.out.println("usage: java GetPDFAType in-pdf-file");
    }

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        if (args.length < 1) {
            printUsage(); // usageメッセージの表示
            return;
        }

        // コマンドライン引数の取得
        try (PtlParamInput inputFile = new PtlParamInput(args[0]);
             PtlPDFDocument doc = new PtlPDFDocument()) {
            // PDFファイルをロード
            doc.load(inputFile);

            // PDFファイルの種類を判定する
            if(doc.isPDFA()){
                System.out.print("この文書は");
                switch (doc.getPDFAType()) {
                case PDFA_1A:
                    System.out.println("PDF/A-1aです。");
                    break;
                case PDFA_1B:
                    System.out.println("PDF/A-1bです。");
                    break;
                case PDFA_2A:
                    System.out.println("PDF/A-2aです。");
                    break;
                case PDFA_2B:
                    System.out.println("PDF/A-2bです。");
                    break;
                case PDFA_2U:
                    System.out.println("PDF/A-2uです。");
                    break;
                case PDFA_3A:
                    System.out.println("PDF/A-3aです。");
                    break;
                case PDFA_3B:
                    System.out.println("PDF/A-3bです。");
                    break;
                case PDFA_3U:
                    System.out.println("PDF/A-3uです。");
                    break;
                case PDFA_UNKNOWN:
                    System.out.println("不明なタイプのPDF/Aです。");
                    break;
                }
            }else{
                System.out.println("この文書はPDF/Aではありません。");
            }

        }
	...【GetPDFVersion.javaと同じ処理のため省略
	   ・エラーメッセージ処理と出力】...
    }
}

プログラムファイル名

GetPDFAType.java

入出力操作の例

C:\samples>java cookbook.GetPDFAType 
usage: java GetPDFAType in-pdf-file

C:\samples>java cookbook.GetPDFAType Output_FixupPDFA-1b.pdf 
この文書はPDF/A-1bです。
-- 完了 --

C:\samples>java cookbook.GetPDFAType Output_FixupPDFA-2b.pdf 
この文書はPDF/A-2bです。
-- 完了 --

C:\samples>java cookbook.GetPDFAType Output_FixupPDFA-1bLinearized.pdf 
この文書はPDF/A-1bです。
-- 完了 --

C:\samples>java cookbook.GetPDFAType Output_FixupPDFA-2bLinearized.pdf 
この文書はPDF/A-2bです。
-- 完了 --

この操作例ではそれぞれ本書「2.2.1 PDF/A-1b、PDF/A-2b への変換」、「2.2.2 保存オプションの指定(PDF/A への変換)」で出力したPDFの種別を読み取っています。

次は、PDF/A-3bにおけるPDF/A種別の読み取り例です。

C:\samples>java cookbook.GetPDFAType sample_pdf2.0_PDF3b.pdf  
この文書はPDF/A-3bです。
-- 完了 --