pdf 表單預覽

表單欄位是處理客戶資料時不可或缺的組成部分之一,並且可以輕鬆地向使用者分發 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 表單上現有複選框關聯的屬性的功能。

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。

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 自動化表單處理