[]
        
立即试用
(Showing Draft Content)

导出表单控件

有时,您可能需要将包含表单控件的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);

image

类型=警告

注意:映射的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表单字段的映射

将Excel文件导出为PDF时,GcExcel会将支持的Excel表单控件映射到PDF表单字段。GcExcel支持映射的属性如下表所示。

控件类型

接口

映射的成员及说明

复选框

GrapeCity.Documents.Excel.Forms.ICheckBox

导出为PDF时,复选框的以下成员会被映射:

组合框

GrapeCity.Documents.Excel.Forms.IDropDown

导出为PDF时,组合框的以下成员会被映射:

列表框

GrapeCity.Documents.Excel.Forms.IListBox

导出为PDF时,列表框的以下成员会被映射:

选项按钮

GrapeCity.Documents.Excel.Forms.IOptionButton

导出为PDF时,选项按钮的以下成员会被映射:

限制

  • 由于PDF不支持运行Excel VBA代码,按钮(IButton)导出为PDF表单时显示为静态内容,无法进行交互。

  • 组框(IGroupBox)、标签(ILabel)、滚动条(IScrollBar)和微调框(ISpinner)无法作为PDF表单字段使用。导出为PDF表单时,这些控件显示为静态内容,无法进行交互。

  • 控件的链接单元格在PDF表单中无法设置。导出为PDF表单时,单元格链接将无效。

  • 复选框(ICheckBox)和选项按钮(IOptionButton)的颜色和线条在PDF表单中无法设置。导出为PDF表单时,将使用默认外观。

  • 表单控件分组并导出为PDF表单时,组内的控件将不会显示。

  • 选项按钮的选中状态不会导出。

  • 选项按钮的边框为矩形而非圆形。

有关将表单控件导出为PDF文档的更多信息,请参阅用 PDF 表单字段模拟用户界面