Skip to main content
Interwork Corporation
IDR Solutions Product Support Portal
PDF開発用語集 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動 モードの切替 ダーク/ライト/自動

JPedalでPDFフォームデータにアクセスする

PDFフォームデータ

JPedal PDFソフトウェアは、内部的にすべてのPDFフォームをフォームデータを表すPDF FormObjectに変換します。このFormObjectには、PdfFormUtilities クラスを使用して直接アクセスできます。

APIを使用したサンプルコード

PdfFormUtilitiesクラスを使用すると、PDFファイルにFormオブジェクト、GUIオブジェクト、およびFormNamesのリストが存在する場合、それらにアクセスできます。以下のコード例では、これを行うためのいくつかの異なる例を示しています。

final PdfFormUtilities formUtils = new PdfFormUtilities("inputFile.pdf");
try {
    if (formUtils.openPDFFile()) {

        Object[] returnValues;

        //ドキュメント内のすべてのフォーム(以下のいずれか)
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORMOBJECTS_FROM_REF);
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORMOBJECTS_FROM_NAME);

        //5ページ目のすべてのフォーム(以下のいずれか)
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORMOBJECTS_FROM_REF, 5);
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORMOBJECTS_FROM_NAME, 5);

        //すべてのformNames
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORM_NAMES);

        //12ページ目のフォームのすべてのFormNames
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORM_NAMES, 12);

        //ドキュメント内のMabelという名前のすべてのフォーム
        returnValues = formUtils.getFormComponentsFromDocument("Mabel", ReturnValues.FORMOBJECTS_FROM_NAME);

        //5ページ目のMabelという名前のすべてのフォーム
        returnValues = formUtils.getFormComponentsFromPage("Mabel", ReturnValues.FORMOBJECTS_FROM_NAME, 5);

        //PDF参照を持つフォーム
        returnValues = formUtils.getFormComponentsFromDocument("25 0 R", ReturnValues.FORMOBJECTS_FROM_REF);

        //5ページ目のPDF参照を持つフォーム
        returnValues = formUtils.getFormComponentsFromPage("25 0 R", ReturnValues.FORMOBJECTS_FROM_REF, 5);

        //GUIコンポーネントに直接アクセスする必要がある場合は、以下を使用できます
        //(Swingの場合、これらのオブジェクトの解決もトリガーされるため、
        //明示的に必要でない限り、FormObjectsで作業することをお勧めします)
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.GUI_FORMS_FROM_NAME);
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.GUI_FORMS_FROM_NAME, 5);
    }
} catch (PdfException e) {
    e.printStackTrace();
} finally {
    formUtils.closePDFfile();
}

XFA XMLデータ

PdfFormUtilitiesを使用すると、PDFから生のXFAデータを抽出することもできます。

final PdfFormUtilities formUtils = new PdfFormUtilities("inputFile.pdf");
try {
    if (formUtils.openPDFFile()) {
        final byte[] xfaConfig = formUtils.getRawXFAData(PdfDictionary.XFA_CONFIG);
        final byte[] xfaDataSet = formUtils.getRawXFAData(PdfDictionary.XFA_DATASET);
        final byte[] xfaTemplate = formUtils.getRawXFAData(PdfDictionary.XFA_TEMPLATE);
    }
} catch (PdfException e) {
    e.printStackTrace();
} finally {
    formUtils.closePDFfile();
}