[]
有时,你需要将包含表单控件的Excel表单转换为交互式PDF表单(即AcroForms)。表单控件是一类可添加到工作表中的对象,能实现与工作表内单元格或数据区域的交互。借助PdfSaveOptions类的FormFields属性,GcExcel可将表单控件作为表单域导出到PDF文档中,以便用户进行交互。
参考以下示例代码,将Excel表单控件导出为PDF表单域:
// Initialize Workbook.
var workbook = new Workbook();
// Create worksheet.
IWorksheet ws = workbook.Worksheets["Sheet1"];
// Add three checkboxes.
var checkBox1 = ws.Controls.AddCheckBox(62.4, 16.8, 69, 19.2);
checkBox1.Value = false;
var checkBox2 = ws.Controls.AddCheckBox(62.4, 36.6, 69, 19.2);
checkBox2.Value = true;
var checkBox3 = ws.Controls.AddCheckBox(62.4, 57, 69, 19.2);
checkBox3.Value = false;
// Add dropdown.
var dropDown = ws.Controls.AddDropDown(28.8, 81.8, 103.8, 31.4);
dropDown.PrintObject = true;
dropDown.Items.Add(new DropDownItem("Item 1"));
dropDown.Items.Add(new DropDownItem("Item 2"));
dropDown.Items.Add(new DropDownItem("Item 3"));
dropDown.SelectedIndex = 0;
// Add listbox.
var lstBox1 = ws.Controls.AddListBox(51.6, 134.2, 135, 99.6);
for (int i = 0; i < 6; i++)
{
lstBox1.Items.Add(new ListBoxItem("Item " + (i + 1)));
}
lstBox1.SelectedIndex = 2;
// Add option button groups.
ws.Controls.AddGroupBox(234.2, 8.4, 222.6, 138.6);
ws.Controls.AddOptionButton(261.2, 29.4, 71.4, 16.8);
ws.Controls.AddOptionButton(267.8, 70.8, 71.4, 16.8);
ws.Controls.AddOptionButton(275.6, 111.6, 71.4, 16.8);
ws.Controls.AddGroupBox(244.4, 187.6, 176.4, 143.4);
ws.Controls.AddOptionButton(274.4, 216.6, 71.4, 16.8);
ws.Controls.AddOptionButton(279.8, 255, 71.4, 16.8);
ws.Controls.AddOptionButton(286.4, 295.2, 71.4, 16.8);
// Set FormFields to true to export Excel form controls as PDF form fields.
var options = new PdfSaveOptions { FormFields = true };
// Save the PDF document.
workbook.Save("PdfFormFieldExample.pdf", options);
注意:映射的PDF表单域的Z索引始终高于其他形状。
如果导出的PDF文档中不存在表单控件,请检查并启用特定表单控件的PrintObject设置。默认情况下,除按钮表单控件外,所有表单控件的此属性值均为true。
参考以下示例代码,在将按钮表单控件保存为PDF时进行打印:
// Initialize Workbook.
Workbook workbook = new Workbook();
IWorksheet worksheet = workbook.Worksheets[0];
// Add a button control to worksheet and set its PrintObject property
var btn = worksheet.Controls.AddButton(360 * ColScale, 91.8, 103.94 * WidthScale, 19.79);
btn.Text = "Test settings";
btn.PrintObject = true;
// Save to a pdf file
workbook.Save("FormControlPdf.pdf");将Excel文件导出为PDF时,GcExcel会将支持的Excel表单控件映射到PDF表单域。GcExcel支持映射的属性如下表所示。
控件类型 | 接口 | 映射的成员及说明 |
|---|---|---|
复选框 | 导出为PDF时,复选框的以下成员会被映射: | |
组合框 | 导出为PDF时,组合框的以下成员会被映射: | |
列表框 | 导出为PDF时,列表框的以下成员会被映射:
| |
选项按钮 | 导出为PDF时,选项按钮的以下成员会被映射: |
由于PDF表单域中不存在以下控件和属性,因此GcExcel不支持导出这些内容:
IButton
IGroupBox
ILabel
IScrollBar
ISpinner
GrapeCity.Documents.Excel.Forms.ICheckBox.IsChecked 的混合选项
GrapeCity.Documents.Excel.Forms.SelectionMode.Extended