[]
        
(Showing Draft Content)

导出表单控件

有时,您可能需要将包含有表单控件的 Excel 导出至 PDF 中。表单控件是可以添加到工作表中的对象,以便与工作表中可用的单元格或数据区域进行交互。使用 PdfSaveOptions 类的 setFormFields 方法,GcExcel 允许您将表单控件作为表单字段导出到 PDF 文档,这将对用户进行交互。

请参阅以下示例代码,将Excel表单控件导出为PDF表单字段:

// Initialize Workbook.
Workbook workbook = new Workbook();
        
// Create worksheet.
IWorksheet ws = workbook.getWorksheets().get("Sheet1");
        
// Add three checkboxes.
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);

// Add dropdown.
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);

// Add listbox.
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);

// Add option button groups.
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);

// Set FormFields to true to export Excel form controls as PDF form fields.
PdfSaveOptions options = new PdfSaveOptions();
options.setFormFields(true);
        
// Save the PDF document.
workbook.save("PdfFormFieldExample.pdf", options);

image

type=warning

注意: 映射的 PDF 表单字段的 ZIndex 始终高于其他形状。

如果导出的 PDF 文档中不存在表单控件,请检查并启用特定表单控件的 setPrintObject 设置。默认情况下,对于除 Button 窗体控件之外的所有窗体控件,此属性的值为 true。

请参阅以下示例代码,在将 Button 窗体控件另存为 PDF 时打印该控件:

// Create a new workbook
Workbook workbook = new Workbook();

IWorksheet worksheet = workbook.getWorksheets().get(0);
        
// Add a button control to worksheet and set its PrintObject property
IButton btn = worksheet.getControls().addButton(360, 91.8, 103.94, 19.79);
btn.setText("Test settings");
btn.setPrintObject(true);

// Save to a pdf file
workbook.save("FormControlPdf.pdf");

限制:

  • GcExcel 不支持导出以下控件、属性和功能,因为它们在 PDF 表单字段中不可用:

    • IButton

    • IGroupBox

    • ILabel

    • IScrollBar

    • ISpinner

    • Mixed option forGrapeCity.Documents.Excel.Forms.ICheckBox.IsChecked

    • GrapeCity.Documents.Excel.Forms.SelectionMode.Extended

    • 选项按钮的选择状态

    • 选项按钮的圆形边框