[]
有时,您可能需要将包含表单控件的Excel文件导出为PDF。表单控件是可添加到工作表中的对象,用于与工作表中的单元格或数据区域进行交互。使用PdfSaveOptions类的setFormFields方法,GcExcel允许您将表单控件作为表单字段导出到PDF文档中,以便用户进行交互。
请参考以下示例代码,将Excel表单控件导出为PDF表单字段:
// 初始化工作簿
Workbook workbook = new Workbook();
// 创建工作表
IWorksheet ws = workbook.getWorksheets().get("Sheet1");
// 添加三个复选框
ICheckBox checkBox1 = ws.getControls().addCheckBox(62.4, 16.8, 69, 19.2);
checkBox1.setValue(false);
ICheckBox checkBox2 = ws.getControls().addCheckBox(62.4, 36.6, 69, 19.2);
checkBox2.setValue(true);
ICheckBox checkBox3 = ws.getControls().addCheckBox(62.4, 57, 69, 19.2);
checkBox3.setValue(false);
// 添加下拉框
IDropDown dropDown = ws.getControls().addDropDown(28.8, 81.8, 103.8, 31.4);
dropDown.setPrintObject(true);
dropDown.getItems().add(new DropDownItem("Item 1"));
dropDown.getItems().add(new DropDownItem("Item 2"));
dropDown.getItems().add(new DropDownItem("Item 3"));
dropDown.setSelectedIndex(0);
// 添加列表框
IListBox lstBox1 = ws.getControls().addListBox(51.6, 134.2, 135, 99.6);
for (int i = 0; i < 6; i++) {
lstBox1.getItems().add(new ListBoxItem("Item " + (i + 1)));
}
lstBox1.setSelectedIndex(2);
// 添加选项按钮组
ws.getControls().addGroupBox(234.2, 8.4, 222.6, 138.6);
ws.getControls().addOptionButton(261.2, 29.4, 71.4, 16.8);
ws.getControls().addOptionButton(267.8, 70.8, 71.4, 16.8);
ws.getControls().addOptionButton(275.6, 111.6, 71.4, 16.8);
ws.getControls().addGroupBox(244.4, 187.6, 176.4, 143.4);
ws.getControls().addOptionButton(274.4, 216.6, 71.4, 16.8);
ws.getControls().addOptionButton(279.8, 255, 71.4, 16.8);
ws.getControls().addOptionButton(286.4, 295.2, 71.4, 16.8);
// 将FormFields设置为true,以将Excel表单控件导出为PDF表单字段
PdfSaveOptions options = new PdfSaveOptions();
options.setFormFields(true);
// 保存PDF文档
workbook.save("PdfFormFieldExample.pdf", options);
类型=警告
注意:映射的PDF表单字段的ZIndex始终高于其他形状。
如果导出的PDF文档中没有显示表单控件,请检查并启用特定表单控件的setPrintObject设置。默认情况下,除Button窗体控件外,所有窗体控件的此属性值均为true。
请参考以下示例代码,在将Button窗体控件保存为PDF时打印该控件:
// 创建新工作簿
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.getWorksheets().get(0);
// 向工作表添加按钮控件并设置其PrintObject属性
IButton btn = worksheet.getControls().addButton(360, 91.8, 103.94, 19.79);
btn.setText("Test settings");
btn.setPrintObject(true);
// 保存为PDF文件
workbook.save("FormControlPdf.pdf");将Excel文件导出为PDF时,GcExcel会将支持的Excel表单控件映射到PDF表单字段。GcExcel支持映射的属性如下表所示。
控件类型 | 接口 | 映射的成员及说明 |
|---|---|---|
复选框 | 导出为PDF时,复选框的以下成员会被映射:
| |
组合框 | 导出为PDF时,组合框的以下成员会被映射: | |
列表框 | 导出为PDF时,列表框的以下成员会被映射:
| |
选项按钮 | 导出为PDF时,选项按钮的以下成员会被映射: |
由于PDF不支持运行Excel VBA代码,按钮(IButton)导出为PDF表单时显示为静态内容,无法进行交互。
组框(IGroupBox)、标签(ILabel)、滚动条(IScrollBar)和微调框(ISpinner)无法作为PDF表单字段使用。导出为PDF表单时,这些控件显示为静态内容,无法进行交互。
控件的链接单元格在PDF表单中无法设置。导出为PDF表单时,单元格链接将无效。
复选框(ICheckBox)和选项按钮(IOptionButton)的颜色和线条在PDF表单中无法设置。导出为PDF表单时,将使用默认外观。
表单控件分组并导出为PDF表单时,组内的控件将不会显示。
选项按钮的选中状态不会导出。
选项按钮的边框为矩形而非圆形。
有关将表单控件导出为PDF文档的更多信息,请参阅用 PDF 表单字段模拟用户界面。