
表单字段是处理客户数据时不可或缺的组成部分之一,并且可以轻松地将 PDF Acro 表单分发给用户,以便他们可以使用自己选择的数据填写表单并将其发回。我们熟悉可以使用各种表单字段,但在所有这些表单字段中,文本框、复选框、单选按钮和组合框非常常见。因此,一旦在 Acro 表单中填写了数据,我们就会在后台解析表单字段以从中提取数据并将其保存到 FDF、XML 或直接保存到数据库中。
虽然所有操作(包括 PDF 表单创建、表单字段添加、表单字段更新活动)都可以手动执行,但在处理大量文档时,手动操作似乎不可行,因为手动处理数据既耗时又容易出错。因此,通过编程语言实现自动例程可能是一个可行的解决方案。因此,在创建程序时,我们可以选择使用可以帮助我们完成所有要求的本地解决方案/API,或者使用云托管的 REST API 来解析表单字段。
REST API 优势
RESTful API 在此实现了飞跃,因为您无需手动跟踪所有 API 版本。此外,您无需让系统更新 API 版本,也无需担心 API 与特定编程语言的兼容性问题等。因此,我们推出了 Aspose.PDF Cloud SDK for Java,它提供了创建、操作以及将 PDF 文档转换为其他受支持文件格式的功能。Java SDK 是在 Aspose.PDF Cloud REST API 之上开发的,可以使用 cURL 命令轻松访问,并且 SDK 的开发是为了方便使用特定编程语言的客户。
在这篇博客中,我们将阐明如何解析不同的表单字段:
读取,添加或更新 TextBox 字段
API 提供了三种方法来读取与 TextBox 字段相关的信息。
| API | 类型 | 描述 | Swagger 链接 |
| ——————————————————– | ———– | ——————————————————– | —————————————— |
| /pdf/{name}/fields/textbox | GET | 读取文档文本框字段 | GetDocumentTextBoxFields |
| /pdf/{name}/page/{pageNumber}/fields/textbox | GET | 读取给定页面的文档 TextBox 字段 | GetPageTextBoxFields |
| /pdf/{name}/fields/textbox/{fieldName} | GET | 通过字段名称读取文档 TextBox 字段 | GetTextBoxField |
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
结论
如上文所述,借助 Cloud API,表单字段处理变得非常容易。您可以考虑阅读相关博客 表单解析器 | 表单识别器 | PDF 填写 | 使用 REST Web API 自动化表单处理。