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

プログラムによってフォーム値を更新する方法

JPedalには、組み合わせて使用することで様々なタスクを実現できるツールが用意されています。この場合、PDFFormUtilitiesとFormWriterを使用して、プログラムによってフォーム値を更新することができます。
これは、PDFFormUtilitiesからFormObjectsを取得し、それらを変更してから、FormWriterで保存することで実現されます。

FormObjectsの取得

FormObjectsはPDFFormUtilitiesを使用して取得でき、こちらでドキュメント化されています。
FormObjectsを取得するには、以下の手順が必要です。以下の例は、すべてのformObjectsを取得する方法、または1ページのみのformObjectsを取得する方法を示しています。

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

        final FormObject[] formArray = (FormObject[]) formUtils.getFormComponentsFromDocument(null,ReturnValues.FORMOBJECTS_FROM_REF);
        
        final int page = 1;
        final FormObject[] formArrayForPage = (FormObject[]) formUtils.getFormComponentsFromPage(null, ReturnValues.FORMOBJECTS_FROM_REF, page);
    }
} catch (PdfException e) {
    e.printStackTrace();
} finally {
    formUtils.closePDFfile();
}

FormObjectsの変更

FormObjectsにアクセスできるようになったら、それらを変更することができます。FormObjects の値は、データ型に基づいたメソッドによってアクセスされます。更新したい値は複数存在する可能性がありますので、どの値を更新すべきかを確認するには、PDFリファレンスのインタラクティブフォームの章を読むことをお勧めします。

更新されたフォームの保存

フォームオブジェクトが更新されたら、シンプルな1行のコードで値を保存できます。
FormWriter.writeForm は、元のファイル、保存先のファイル(元のファイルまたは新しいコピーのいずれか)、およびファイルに保存するFormObjectsのリストを引数に取る静的メソッドです。

final File originalFile = new File("inputFile.pdf");
final File updatedFile = new File("outputFile.pdf");
final FormObject[] formArray; //先ほど作成して変更したもの
        
FormWriter.writeForms(originalFile, updatedFile, formArray);