PDFフォームに記入Java

これらの現代では、多くのデータがフォームを使用して収集されており、入力可能なPDFフォームはこのコンテキストで言及する価値があります。これらは、情報を収集および整理するための効率的な方法です。さらに、入力可能なPDFフォームは、現在、さまざまな機関で標準として使用されています。たとえば、一部の裁判所や調達会社は、入力可能なPDFフォームを効率的に使用して手順を標準化できます。このようなアプリケーションを作成するには、Aspose.PDF for JavaAPIが最適なAPIです。理由を知りたいですか?プログラムでPDFフォームを操作する次のユースケースを見てみましょう。

インストール

新しいリリースセクションに進んで、Javaアプリケーションを強化してPDFドキュメントを処理できるようにAPIを構成するか、Mavenアプリケーションの依存関係を次のように定義できます。

リポジトリ:

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository

依存:

<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-pdf</artifactId>
    <version>20.7</version>
</dependency>

APIを正常に構成したら、次のユースケースに進みましょう。

Javaを使用して入力可能なPDFフォームを作成する

以下の手順に従って、Javaアプリケーションで入力可能なPDFフォームを作成できます。

  1. 空白のページでPDFファイルを作成します
  2. ページにTextBoxフィールドとRadioButtonフィールドを追加します
  3. 出力PDFファイルを保存します

以下のコードスニペットは、Javaを使用して入力可能なPDFフォームを最初から作成する方法を示しています。

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
com.aspose.pdf.Page page = pdfdoc.getPages().add();
TextBoxField nameBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 740, 440, 770));
nameBox.setPartialName("nameBox1");
nameBox.getDefaultAppearance().setFontSize(10);
nameBox.setMultiline(true);
com.aspose.pdf.Border nameBorder = new com.aspose.pdf.Border(nameBox);
nameBorder.setWidth(1);
nameBox.setBorder(nameBorder);
nameBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
nameBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
TextBoxField mrnBox = new TextBoxField(pdfdoc, new com.aspose.pdf.Rectangle(275, 718, 440, 738));
mrnBox.setPartialName("Box1");
mrnBox.getDefaultAppearance().setFontSize(10);
com.aspose.pdf.Border mrnBorder = new com.aspose.pdf.Border(mrnBox);
mrnBorder.setWidth(1);
mrnBox.setBorder(mrnBorder);
mrnBox.getCharacteristics().setBorder(java.awt.Color.BLACK);
mrnBox.setColor(com.aspose.pdf.Color.fromRgb(Color.RED));
// PDFドキュメントの最初のページにフォームフィールドを追加します            
pdfdoc.getForm().add(nameBox, 1);
pdfdoc.getForm().add(mrnBox, 1);

//PDFの特定の位置座標にラジオボタンを追加する
com.aspose.pdf.Table table = new com.aspose.pdf.Table();
//ここで位置を設定します
table.setLeft(200);
table.setTop(300);
table.setColumnWidths("120");
page.getParagraphs().add(table);
com.aspose.pdf.Row r1 = table.getRows().add();
com.aspose.pdf.Row r2 = table.getRows().add();
com.aspose.pdf.Cell c1 = r1.getCells().add();
com.aspose.pdf.Cell c2 = r2.getCells().add();
com.aspose.pdf.RadioButtonField rf = new com.aspose.pdf.RadioButtonField(page);
rf.setPartialName("radio");
pdfdoc.getForm().add(rf, 1);
com.aspose.pdf.RadioButtonOptionField opt1 = new com.aspose.pdf.RadioButtonOptionField();
com.aspose.pdf.RadioButtonOptionField opt2 = new com.aspose.pdf.RadioButtonOptionField();
opt1.setOptionName("Yes");
opt2.setOptionName("No");
opt1.setWidth(15);
opt1.setHeight(15);
opt2.setWidth(15);
opt2.setHeight(15);
rf.add(opt1);
rf.add(opt2);
opt1.setBorder(new com.aspose.pdf.Border(opt1));
opt1.getBorder().setWidth(1);
opt1.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt1.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt1.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt1.setCaption(new com.aspose.pdf.TextFragment("Yes"));
opt2.setBorder(new com.aspose.pdf.Border(opt1));
opt2.getBorder().setWidth(1);
opt2.getBorder().setStyle(com.aspose.pdf.BorderStyle.Solid);
opt2.getCharacteristics().setBorder(java.awt.Color.BLACK);
opt2.getDefaultAppearance().setTextColor(java.awt.Color.RED);
opt2.setCaption(new com.aspose.pdf.TextFragment("No"));
c1.getParagraphs().add(opt1);
c2.getParagraphs().add(opt2);
pdfdoc.save(dataDir + "Fillable_PDF_Form.pdf");

Javaを使用して既存のPDFのフォームフィールドに入力、変更、または削除する

新しい入力可能なPDFファイルを最初から作成する方法を学びました。既存のPDFドキュメントが処理されるシナリオに進みましょう。

i)Javaを使用して既存のPDFファイルのフォームフィールドに入力する

上記の例でPDFフォームを作成したように、同じドキュメントを続行し、Javaを使用してプログラムでフォームフィールドに入力します。作成したフォームに以下の手順で記入できます。

  1. 入力ファイルをロードします
  2. TextBoxフィールドに値を入力します
  3. オプションを選択してRadioButtonフィールドに入力します
  4. PDFフォームを保存する

以下のコードスニペットは、Javaを使用して入力可能なフォームに入力する方法を示しています。

// ドキュメントを開く
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fillable_PDF_Form.pdf");

// フィールドを取得する
TextBoxField textBoxField1 = (TextBoxField) pdfDocument.getForm().get("nameBox1");
TextBoxField textBoxField2 = (TextBoxField) pdfDocument.getForm().get("Box1");
// フォームフィールドの値を入力します
textBoxField1.setValue("A quick brown fox jumped over a lazy dog.");
textBoxField2.setValue("A quick brown fox jumped over a lazy dog.");

// ラジオボタンフィールドを取得
RadioButtonField radioField = (RadioButtonField) pdfDocument.getForm().get("radio");
// グループのラジオボタンのインデックスを指定します
radioField.setSelected(1);

dataDir = dataDir + "Fill_PDF_Form_Field.pdf";
// 更新されたドキュメントを保存する
pdfDocument.save(dataDir);

ii)Javaを使用してPDFドキュメントのフォームフィールドを変更する

PDF形式のフィールド値を編集または更新する必要がある場合があります。以下の手順で、入力可能なPDFフォームを簡単に編集できます。

  1. 入力PDFを初期化する
  2. 名前でフォームフィールドへの参照を取得します
  3. PDFフォームを編集する
  4. 編集したPDFフォームを保存

以下のコードスニペットは、Javaを使用して入力可能なPDFファイルを更新または編集する方法を示しています。

// ドキュメントを開く
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// フィールドを取得
TextBoxField textBoxField = (TextBoxField) pdfDocument.getForm().get("nameBox1");
// フィールド値を変更する
textBoxField.setValue("Changed Value");
textBoxField.setReadOnly(true);
dataDir = dataDir + "ModifyFormField.pdf";
// 更新されたドキュメントを保存する
pdfDocument.save(dataDir);

iii)Javaを使用して既存のPDFファイルのフォームフィールドを削除する

Javaアプリケーションでフォームフィールドを簡単に削除または削除できます。以下の手順に従ってください。

  1. PDFフォームを初期化する
  2. 名前を使用してフォームフィールドを削除します
  3. 更新されたPDFフォームを保存

以下のコードスニペットは、Javaを使用してPDFフォームからフォームフィールドを削除する方法を示しています。

// ドキュメントを開く
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// 名前で特定のフィールドを削除する
pdfDocument.getForm().delete("nameBox1");
dataDir = dataDir + "Delete_Form_Field.pdf";
// 変更したドキュメントを保存する
pdfDocument.save(dataDir);

Javaを使用してPDFフォームの拡張された権利を保持する

一部のPDFフォームには拡張権限があることに気付くかもしれません。これらは、元のコンテンツの変更を回避するために使用され、フォームへの入力のみが許可されます。 PDFファイルの拡張された権利は、次の場合に影響を受ける可能性があります。

このようなフォームに入力して、ディスクのさまざまな場所に保存します。したがって、以下の手順でこのようなファイルを段階的に保存する必要があります。

  1. PDFフォームを初期化する
  2. フィールドに入力します
  3. 記入したPDFドキュメントを保存します

以下のコードスニペットは、Javaを使用してPDFフォームに入力するときに拡張権限を保持する方法を示しています。

// ドキュメントインスタンスをインスタンス化する
com.aspose.pdf.Document pdfDocument = new com.aspose.pdf.Document(dataDir + "Fill_PDF_Form_Field.pdf");
// すべてのフィールドから値を取得します
for (com.aspose.pdf.Field formField : pdfDocument.getForm().getFields())
{
    // フィールドのフルネームにnameBox1が含まれている場合は、操作を実行します
    if (formField.getFullName().contains("nameBox1"))
    {
        // フォームフィールドをTextBoxとしてキャストします
        TextBoxField textBoxField = (TextBoxField) formField;
        // フィールド値を変更する
        textBoxField.setValue("Preserve Extended Features");
    }
}
// 更新したドキュメントを保存する
pdfDocument.save();

Javaを使用してPDF形式でJavaScriptを使用する

Aspose.PDF for JavaでJavascriptを使用して、入力可能なPDFフォームフィールドに入力できます。次の手順に従う必要があります。

  1. PDFドキュメントをロード
  2. 特定のページの場所にフィールドを追加する
  3. JavaScriptを設定し、ドキュメントのアクションを開きますPDFファイルを保存

次のコードスニペットは、入力可能なPDFフォームでJavaScriptを使用する方法を示しています。

com.aspose.pdf.Document pdfdoc = new com.aspose.pdf.Document();
pdfdoc.getPages().add();
TextBoxField textBoxField = new TextBoxField(pdfdoc.getPages().get_Item(1), new com.aspose.pdf.Rectangle(85, 750, 215, 770));
textBoxField.setPartialName("textbox1");
textBoxField.setValue("Text Box");
//TextBoxField.Border = new Border();
com.aspose.pdf.Border border = new com.aspose.pdf.Border(textBoxField);
border.setWidth(2);
border.setDash(new com.aspose.pdf.Dash(1, 1));
textBoxField.setBorder(border);
textBoxField.getDefaultAppearance().setFontSize(10);
textBoxField.setColor(com.aspose.pdf.Color.fromRgb(java.awt.Color.GREEN));
// ドキュメントにフィールドを追加
pdfdoc.getForm().add(textBoxField, 1);
String JS = "var w = this.getField('" + textBoxField.getPartialName() + "'); var today = new Date(); w.value = today.toLocaleString();";
pdfdoc.setOpenAction(new com.aspose.pdf.JavascriptAction(JS));
pdfdoc.save(dataDir + "JS_Form.pdf");

結論

入力可能なPDFフォームを作成する方法、およびJava環境を使用してフォームフィールドに入力または編集する方法を学習しました。さらに、PDFドキュメントアクションでJavaScriptを使用することに加えて、PDFドキュメントの拡張された権利を保持することも検討しました。ご不明な点や問題がございましたら、無料サポートフォーラムまでお気軽にお問い合わせください。

関連項目