fbpx
< 戻る
印刷

PDFフォームデータへのアクセス

PDFフォームデータ

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

APIを示すサンプルコード

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

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

        Object[] returnValues;

        //all forms in document (either of the following)
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORMOBJECTS_FROM_REF);
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORMOBJECTS_FROM_NAME);

        //all forms on page 5 (either of the following)
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORMOBJECTS_FROM_REF, 5);
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORMOBJECTS_FROM_NAME, 5);

        //all formNames
        returnValues = formUtils.getFormComponentsFromDocument(null, ReturnValues.FORM_NAMES);

        //all FormNames of Forms on page 12
        returnValues = formUtils.getFormComponentsFromPage(null, ReturnValues.FORM_NAMES, 12);

        //all forms in document called Mabel
        returnValues = formUtils.getFormComponentsFromDocument("Mabel", ReturnValues.FORMOBJECTS_FROM_NAME);

        //all forms on page 5 called Mabel
        returnValues = formUtils.getFormComponentsFromPage("Mabel", ReturnValues.FORMOBJECTS_FROM_NAME, 5);

        //form with PDF Reference
        returnValues = formUtils.getFormComponentsFromDocument("25 0 R", ReturnValues.FORMOBJECTS_FROM_REF);

        //form with PDF Reference on page 5
        returnValues = formUtils.getFormComponentsFromPage("25 0 R", ReturnValues.FORMOBJECTS_FROM_REF, 5);

        //if you need direct access to the GUI components, you can use
        //(this will also trigger resolving these objects if Swing so we recommend you work
        //with FormObjects unless you explicitly need this)
        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("exampleXFAFile.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();
}
				
			
    MENU
    PAGE TOP