フォームの値をプログラムで更新する方法
JPedalには、さまざまなタスクを実現するために組み合わせて使用できる一連のツールが用意されています。このケースでは、PDFFormUtilitiesとFormWriterを使用して、フォームの値をプログラムで更新することができます。
これは、PDFFormUtilitiesからFormObjectsを取得し、それらを変更してから、FormWriterで保存することによって行われます。
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 の値は、データ型に基づいたメソッドでアクセスされます。更新したい値には複数の異なる種類がありますが、どの値を更新するかを確認するには、PDF ReferenceのInteractive Formsの章を読むことをお勧めします。
フォームオブジェクトが更新されたら、シンプルな1行のコードで値を保存できます。
FormWriter.writeForm
は静的メソッドで、元のファイル、保存先のファイル(元のファイルまたは新しいコピーのいずれか)、およびファイルに保存するFormObjectsのリストを引数に取ります。
final File originalFile = new File("inputFile.pdf");
final File updatedFile = new File("outputFile.pdf");
final FormObject[] formArray; //Created and modified earlier
FormWriter.writeForms(originalFile, updatedFile, formArray);
