
フォーム フィールドは、顧客データを扱う際に不可欠なコンポーネントの 1 つであり、PDF Acro フォームをユーザーに配布して、ユーザーがフォームに任意のデータを入力して返送することが容易になります。さまざまなフォーム フィールドが使用できることはよく知られていますが、その中でも TextBox、CheckBox、RadioButton、ComboBox が非常に一般的です。したがって、Acro フォームにデータが入力されると、バック オフィスでフォーム フィールドを解析してデータを抽出し、FDF、XML に保存するか、データベースに直接保存します。
PDF フォームの作成、フォーム フィールドの追加、フォーム フィールドの更新アクティビティを含むすべての操作は手動で実行できますが、膨大なドキュメント セットを扱う場合、手動操作は時間がかかり、データの手動処理によりエラーが発生しやすいため、実行可能ではないようです。そのため、プログラミング言語による自動ルーチンは実行可能なソリューションです。したがって、プログラムを作成するときは、すべての要件を満たすのに役立つオンプレミス ソリューション/API を使用するか、クラウドでホストされている REST API を使用してフォーム フィールドを解析するかを選択できます。
REST APIの利点
RESTful API は、すべての API バージョンを手動で追跡する必要がないため、この点で大きな進歩を遂げています。また、システムを API バージョンで最新の状態に保つ必要はなく、特定のプログラミング言語との API の互換性の問題などを心配する必要もありません。そのため、PDF ドキュメントを作成、操作する機能と、サポートされている他のファイル形式に変換する機能を提供する Aspose.PDF Cloud SDK for Java をご紹介します。Java SDK は、cURL コマンドを使用して簡単にアクセスできる Aspose.PDF Cloud REST API をベースに開発されており、SDK は特定のプログラミング言語を使用するお客様を支援するために開発されています。
このブログでは、さまざまなフォーム フィールドを解析する方法について説明します。
TextBox フィールドの読み取り、追加、更新
API は、TextBox フィールドに関連付けられた情報を読み取る 3 つの方法を提供します。
| API | タイプ | 説明 | Swagger リンク |
| ——————————————– | ———– | ——————————————– | —————————— |
| /pdf/{name}/fields/textbox | GET | ドキュメントの TextBox フィールドを読み取る | GetDocumentTextBoxFields |
| /pdf/{name}/page/{pageNumber}/fields/textbox | GET | 指定されたページのドキュメント TextBox フィールドを読み取る | GetPageTextBoxFields |
| /pdf/{name}/fields/textbox/{fieldName} | GET | フィールド名でドキュメントの TextBox フィールドを読み取る | GetTextBoxField |
TextBox フィールドを読み取る cURL コマンド
ファイルは個人のクラウド ストレージに保存されるため、最初に個人用のクライアント ID とクライアント シークレットを必要とする JWT 認証トークンを生成する必要があります。
curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=xxxx&client_secret=xxxx" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/textbox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
上記の例で使用したサンプルFormDataTextBox.pdf。
ジャワ
// 完全な例とデータファイルについては、https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java をご覧ください。
const string clientID = "xxxxxx-1c8e-4ea4-a948-3857547232fa";
const string clientSecret = "xxxxxx613237f013e329cdf5694cc96a";
import com.aspose.asposecloudpdf.ApiException;
import com.aspose.asposecloudpdf.api.PdfApi;
import com.aspose.asposecloudpdf.examples.Common;
import com.aspose.asposecloudpdf.model.FieldResponse;
public class GetFieldTestExample {
public static void main(String[] args) throws ApiException {
String name = "PdfWithAcroForm.pdf";
// PdfAPiオブジェクトのインスタンスを作成する
com.aspose.asposecloudpdf.api.PdfApi pdf = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientID);
// ドキュメントのテキストボックスフィールドを読み取る
TextBoxFieldsResponse response = pdf.getDocumentTextBoxFields("FormDataTextBox.pdf",null, null);
// 取得したフィールドに関する詳細を印刷する
System.out.println(response.getFields());
}
}
CheckBox フォームフィールドを解析する
CheckBox を扱う場合、API は CheckBox の値を読み取ったり、新しいチェックボックスを追加したり、PDF フォーム上の既存のチェックボックスに関連付けられたプロパティを更新したりする機能も提供します。
- ドキュメントチェックボックスフィールドを取得する - Read document checkbox fields
- ページチェックボックスフィールドの取得 - Read specific page checkbox fields
- チェックボックスフィールドを取得する - Read document checkbox field by name
1 ページ目の CheckBox を読み取る cURL コマンド
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/page/1/fields/checkbox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
ページ 1 のチェックボックスを更新する CURL コマンド
curl -X PUT "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/checkbox/Check%20Box1" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>" \
-H "Content-Type: application/json" \
-d "{ \"Links\": [ { \"Href\": \"string\", \"Rel\": \"string\", \"Type\": \"string\", \"Title\": \"string\" } ], \"PartialName\": \"Aspose CheckBox\", \"FullName\": \"Aspose CheckBox\", \"Rect\": { \"LLX\": 88.3573, \"LLY\": 687.617, \"URX\": 97.0198, \"URY\": 695.413 }, \"Value\": \"null\", \"PageIndex\": 1, \"Height\": 12, \"Width\": 12, \"ZIndex\": 0, \"IsGroup\": false, \"IsSharedField\": true, \"Flags\": [ \"Default\" ], \"Color\": { \"A\": 0, \"R\": 150, \"G\": 120, \"B\": 0 }, \"Contents\": \"Field Updated\", \"Margin\": { \"Left\": 0, \"Right\": 0, \"Top\": 0, \"Bottom\": 0 }, \"Highlighting\": \"None\", \"HorizontalAlignment\": \"Left\", \"VerticalAlignment\": \"Center\", \"Border\": { \"Width\": 1, \"EffectIntensity\": 1, \"Style\": \"Solid\", \"Effect\": \"None\", \"Dash\": { \"On\": 1, \"Off\": 2 }, \"Color\": { \"A\": 255, \"R\": 120, \"G\": 120, \"B\": 0 } }, \"AllowedStates\": [ \"Yes\",\"Off\" ], \"Style\": \"Circle\", \"ActiveState\": \"On\", \"Checked\": true, \"ExportValue\": \"Yes\"}"
リクエストURL
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/checkbox/Check%20Box1
ジャワ
// 完全な例とデータファイルについては、https://github.com/aspose-pdf-cloud/aspose-pdf-cloud-java をご覧ください。
const string clientID = "xxxxxx-1c8e-4ea4-a948-3857547232fa";
const string clientSecret = "xxxxxx613237f013e329cdf5694cc96a";
import com.aspose.asposecloudpdf.model.Rectangle;
import com.aspose.asposecloudpdf.model.CheckBoxField;
import com.aspose.asposecloudpdf.model.Border;
import com.aspose.asposecloudpdf.model.Color;
import com.aspose.asposecloudpdf.model.CheckBoxFieldResponse;
public class UpdateCheckBoxFieldExample {
public static void main(String[] args) throws ApiException {
// PdfAPiオブジェクトのインスタンスを作成する
com.aspose.asposecloudpdf.api.PdfApi pdf = new com.aspose.asposecloudpdf.api.PdfApi(clientSecret,clientID);
// CheckBoxインスタンスを作成する
CheckBoxField updatedCheckBox = new CheckBoxField();
updatedCheckBox.partialName("Check Box1");
updatedCheckBox.height(12.0);
updatedCheckBox.width(12.0);
// チェックボックスのスタイルをダイヤモンドに設定する
updatedCheckBox.style(com.aspose.asposecloudpdf.model.BoxStyle.DIAMOND);
updatedCheckBox.activeState("On");
// チェックボックスの値を有効にする
updatedCheckBox.checked(true);
Rectangle rect = new Rectangle();
rect.setLLX(88.3573);
rect.setLLY(687.617);
rect.setURX(97.0198);
rect.setURY(695.413);
updatedCheckBox.rect(rect);
// ページインデックスの詳細を指定する
updatedCheckBox.pageIndex(1);
// チェックボックスの境界線スタイルの詳細を設定する
Border border = new Border();
border.width(1);
border.style(com.aspose.asposecloudpdf.model.BorderStyle.SOLID);
border.effect(com.aspose.asposecloudpdf.model.BorderEffect.NONE);
// 境界線のカラーオブジェクト
Color color = new Color();
color.setR(120);
color.setG(220);
color.setB(10);
// チェックボックスの境界線の色を設定する
border.color(color);
// ページ 1 のチェックボックス フィールドを更新するメソッドを呼び出す
CheckBoxFieldResponse response = pdf.putCheckBoxField("FormDataTextBox.pdf", "Check Box1", updatedCheckBox,null,null);
// 応答ステータスコードを印刷する
System.out.print(response.getStatus());
}
}
コマンド/コードが実行されると、チェックボックス 1 フィールドに関連付けられたプロパティが下の画像のように更新されます。

画像 1: cURL コマンドを使用して更新されたチェックボックス 1 のプレビュー
RadioButtonフィールドを追加または更新する
TextBox フィールドや CheckBox フィールドと同様に、Cloud SDK は PDF ドキュメント上の RadioButton フィールドを読み取って更新する機能も提供します。
PDF ドキュメントの RadioButton フィールドを読み取る cURL コマンド
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/radiobutton" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
リクエストURL
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/radiobutton
ComboBox フォームフィールドを操作する
Aspose.PDF Cloud SDK for Java を使用すると、ComboBox の操作が非常に便利になります。ドキュメント上の既存の ComboBox フィールドを読み取ったり、新しい ComboBox フィールドを追加したり、既存の ComboBox を更新したりするオプションがあります。
- ドキュメントコンボボックスフィールドの取得 - Read document combobox fields
- ページコンボボックスフィールドの取得 - Read particular page combobox fields
- コンボボックスフィールドを取得する - Read document combobox field by name
- 投稿コンボボックスフィールド - Add ComboBox field to document
- コンボボックスフィールドを配置する - Replace document combobox field
すべての ComboBox フィールドを読み取る cURL コマンド
curl -X GET "https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/combobox" \
-H "accept: application/json" \
-H "authorization: Bearer <JWT Token>"
リクエストURL
https://api.aspose.cloud/v3.0/pdf/FormDataTextBox.pdf/fields/combobox
結論
上記の記事で説明したように、フォームフィールドの処理はクラウド API の助けを借りて非常に簡単になりました。関連するブログ フォームパーサー | フォーム認識機能 | PDF 入力 | REST Web API によるフォーム処理の自動化 をご覧になることを検討してください。