
表單欄位是處理客戶資料時不可或缺的組成部分之一,並且可以輕鬆地向使用者分發 PDF Acro 表單,以便他們可以使用自己選擇的資料填寫表單並將其發回。我們熟悉使用多種表單字段,但其中,TextBox、CheckBox、RadioButton 和 ComboBox 非常常見。因此,一旦資料填入 Acro 表單,我們就會在後台解析表單欄位以從中提取資料並將其儲存為 FDF、XML 或直接儲存到資料庫中。
雖然所有操作(包括 PDF 表單建立、表單欄位新增、表單欄位更新活動)都可以手動執行,但在處理大量文件時,手動操作似乎不可行,因為手動處理資料既耗時又容易出錯。因此,透過程式語言實現自動例行程序可能是可行的解決方案。因此,在建立程式時,我們可以選擇使用可以幫助我們完成所有要求的內部部署解決方案/API,或使用雲端託管的 REST API 來解析表單欄位。
REST API 優勢
RESTful API 在這裡得到了飛躍,因為您不需要手動追蹤所有 API 版本。此外,您不需要讓您的系統保持更新 API 版本,也不必擔心 API 與某種程式語言的兼容性問題等。 Java SDK 是在 Aspose.PDF Cloud REST API 的基礎上開發的,可以使用 cURL 命令輕鬆訪問,並且 SDK 的開發是為了方便我們的客戶使用特定的程式語言。
在這篇部落格中,我們將闡明如何解析不同的表單欄位:
讀取,新增或更新 TextBox 字段
API 提供了三種方法來讀取與 TextBox 欄位相關的資訊。
| API |類型 |描述 | Swagger 連結 |
| ——————————————– | ———– | ——————————————– | —————————— |
| /pdf/{名稱}/欄位/文字方塊 |獲取 |讀取文檔 TextBox 字段 | 取得DocumentTextBoxFields |
| /pdf/{名稱}/page/{頁碼}/fields/文字方塊 |獲取 |讀取給定頁面的文檔文字方塊欄位 | 取得頁面文字方塊欄位 |
| /pdf/{名稱}/fields/文字方塊/{欄位名稱} |獲取 |透過欄位名稱讀取文件 TextBox 欄位 | 取得文字方塊欄位 |
cURL 指令讀取 TextBox 字段
由於檔案儲存在您的個人雲端儲存中,因此您需要先產生 JWT 驗證令牌,該令牌需要您的個人化用戶端 ID 和用戶端金鑰。
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。
Java
// 完整範例和資料檔請前往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);
// 讀取文檔 TextBox 字段
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
- 取得CheckBox字段 - Read document checkbox field by name
cURL 指令讀取第 1 頁的 CheckBox
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>"
CURL 指令更新第 1 頁的 CheckBox
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
Java
// 完整範例和資料檔請前往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);
// 設定 CheckBox 邊框樣式詳細信息
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 欄位的功能。
cURL 指令讀取 PDF 文件上的 RadioButton 字段
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
- 取得ComboBox字段 - Read document combobox field by name
- 貼文組合框字段 - Add ComboBox field to document
- PutComboBoxField - Replace document combobox field
cURL 指令讀取所有 ComboBox 字段
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,表單欄位處理變得非常容易。您可以考慮閱讀相關部落格Form Parser |表單識別器 | PDF 填充 |使用 REST Web API 自動化表單處理。