本文將介紹在Java程序中來獲取PDF表單域值的方法,包括獲取指定(可通過索引值或表單域名稱)表單域的值及獲取文檔中所有表單域的值。創(chuàng)建、填充PDF表單域以及設(shè)置表單域只讀可以參考這篇文章里的方法。
成都創(chuàng)新互聯(lián)專注于博白企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,商城網(wǎng)站建設(shè)。博白網(wǎng)站建設(shè)公司,為博白等地區(qū)提供建站服務(wù)。全流程按需求定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,成都創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
使用工具:Free Spire.PDF for Java (免費(fèi)版)
Jar文件獲?。?/strong>
方法1:通過官網(wǎng)下載jar文件包。下載后,解壓文件,將lib文件夾下的Spire.Pdf.jar導(dǎo)入java程序。
方法2:通過maven倉庫安裝導(dǎo)入,可參考導(dǎo)入方法。
測試文文檔如下:
Java代碼示例
【示例1】獲取指定表單域的值
import com.spire.pdf.PdfDocument;
import com.spire.pdf.widget.PdfFormWidget;
import com.spire.pdf.widget.PdfTextBoxFieldWidget;
import java.io.FileWriter;
import java.io.IOException;
public class GetSpecificFormfieldValue {
public static void main(String[] args) {
//加載PDF文檔
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("test.pdf");
//獲取表單域
PdfFormWidget formWidget = (PdfFormWidget)pdf.getForm();
//通過索引值來獲取指定表單域中的值
PdfTextBoxFieldWidget textbox = ( PdfTextBoxFieldWidget)formWidget.getFieldsWidget().get(0);
//PdfTextBoxFieldWidget textbox = ( PdfTextBoxFieldWidget)formWidget.getFieldsWidget().get("TextBox");//通過表單域名稱來獲取值
//將獲取的值寫入txt文檔
String text = textbox.getText();
try {
//將文本寫入 .txt文件
FileWriter writer = new FileWriter("GetSpecificFormfieldValue.txt");
writer.write(text);
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
pdf.close();
}
}
指定表單域值獲取結(jié)果:
【示例2】獲取文中所有表單域的值
import com.spire.pdf.PdfDocument;
import com.spire.pdf.fields.PdfField;
import com.spire.pdf.widget.*;
import java.io.FileWriter;
import java.io.IOException;
public class GetAllFormfieldValue {
public static void main(String[] args) {
//加載PDF文檔
PdfDocument pdf = new PdfDocument();
pdf.loadFromFile("測試.pdf");
//獲取表單域
PdfFormWidget formWidget = (PdfFormWidget)pdf.getForm();
StringBuilder sb = new StringBuilder();
//遍歷表單域控件集合并提取所有表單的值
for (int i = 0; i < formWidget.getFieldsWidget().getCount(); i++)
{
PdfField field = (PdfField)formWidget.getFieldsWidget().getList().get(i);
//獲取文本框的值
if (field instanceof PdfTextBoxFieldWidget)
{
PdfTextBoxFieldWidget textBoxField = (PdfTextBoxFieldWidget)field ;
String text = textBoxField.getText();
sb.append("文本框內(nèi)容: " + text + "\r\n");
}
//獲取列表框的值
if (field instanceof PdfListBoxWidgetFieldWidget)
{
PdfListBoxWidgetFieldWidget listBoxField = (PdfListBoxWidgetFieldWidget)field;
//獲取列表框中選中的值
String selectedValue = listBoxField.getSelectedValue();
sb.append("列表框選中的內(nèi)容: " + selectedValue + "\r\n");
//獲取列表框中的所有選項(xiàng)值
sb.append("列表框內(nèi)容: \r\n");
PdfListWidgetItemCollection items = listBoxField.getValues();
for (PdfListWidgetItem item : (Iterable<PdfListWidgetItem>) items)
{
sb.append(item.getValue() + "\r\n");
}
}
//獲取組合框的值
if (field instanceof PdfComboBoxWidgetFieldWidget)
{
PdfComboBoxWidgetFieldWidget comBoxField = (PdfComboBoxWidgetFieldWidget)field ;
//獲取組合框中選中的值
String selectedValue = comBoxField.getSelectedValue();
sb.append("組合框選中的內(nèi)容: " + selectedValue + "\r\n");
//獲取組合框中所有選項(xiàng)值
sb.append("組合框內(nèi)容: \r\n");
PdfListWidgetItemCollection items = comBoxField.getValues();
for (PdfListWidgetItem item : (Iterable<PdfListWidgetItem>) items)
{
sb.append(item.getValue() + "\r\n");
}
}
//獲取單選按鈕值
if (field instanceof PdfRadioButtonListFieldWidget)
{
PdfRadioButtonListFieldWidget radioBtnField = (PdfRadioButtonListFieldWidget)field;
String Value = radioBtnField.getValue();
sb.append("單選按鈕內(nèi)容: " + Value + "\r\n");
}
//獲取復(fù)選框值
if (field instanceof PdfCheckBoxWidgetFieldWidget)
{
PdfCheckBoxWidgetFieldWidget checkBoxField = (PdfCheckBoxWidgetFieldWidget)field;
//獲取復(fù)選框的選中狀態(tài)
boolean state = checkBoxField.getChecked();
sb.append("復(fù)選框是否被選中? " + state + "\r\n");
}
}
try {
//將文本寫入 .txt文件
FileWriter writer = new FileWriter("GetAllFormfieldValues.txt");
writer.write(sb.toString());
writer.flush();
} catch (IOException e) {
e.printStackTrace();
}
pdf.close();
}
}
表單域讀取結(jié)果:
(本文完)
分享名稱:Java獲取PDF表單域的值
當(dāng)前URL:http://jinyejixie.com/article14/jopdde.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供搜索引擎優(yōu)化、App開發(fā)、網(wǎng)站收錄、App設(shè)計(jì)、全網(wǎng)營銷推廣、ChatGPT
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)