创建 AcroForms - 在 PHP 中创建可填写的 PDF
Contents
[
Hide
]
在 PDF 文档中添加表单字段
Document 类提供了一个名为 Form 的集合,用于帮助管理 PDF 文档中的表单字段。
要添加表单字段:
- 创建要添加的表单字段。
- 调用 Form 集合的 add 方法。
此示例展示了如何添加一个 TextBoxField。您可以使用相同的方法添加任何表单字段:
- 首先,创建一个字段对象并设置其属性。
- 然后,将字段添加到 Form 集合中。
添加 TextBoxField
文本字段是一个表单元素,允许接收者在您的表单中输入文本。 这将用于任何时候你想允许用户自由输入他们想要的内容。
以下代码片段展示了如何向PDF文档添加一个TextBoxField。
// 打开文档
$colors = new Color();
$document = new Document($inputFile);
$page = $document->getPages()->get_Item(1);
// 创建一个字段
$textBoxField = new TextBoxField($page, new Rectangle(110, 300, 310, 320));
$textBoxField->setPartialName("textbox1");
$textBoxField->setValue("Text Box中的某个值");
$border = new Border($textBoxField);
$border->setWidth(5);
$border->setDash(new Dash(1, 1));
$textBoxField->setBorder($border);
$textBoxField->setColor($colors->getGreen());
// 将字段添加到文档
$document->getForm()->add($textBoxField, 1);
// 保存修改后的PDF
$document->save($outputFile);
$document->close();
添加RadioButtonField
单选按钮最常用于选择题的场景,在这种情况下只能选择一个答案。 以下代码片段展示了如何在 PDF 文档中添加 RadioButtonField。
// 打开文档
$document = new Document($inputFile);
// 向 PDF 文件添加页面
$page = $document->getPages()->get_Item(1);
// 创建 RadioButtonField 对象,参数为页码
$radio = new RadioButtonField($page);
// 添加第一个单选按钮选项并指定其位置
// 使用 Rectangle 对象
$radio->addOption("Test1", new Rectangle(20, 720, 40, 740));
// 添加第二个单选按钮选项
$radio->addOption("Test2", new Rectangle(120, 720, 140, 740));
// 将单选按钮添加到 Document 对象的表单对象中
$document->getForm()->add($radio);
// 保存 PDF 文件
$document->save($outputFile);
$document->close();
以下代码片段展示了添加具有三个选项的 RadioButtonField并将其放置在表格单元格中的步骤。
$colors = new Color();
$document = new Document();
$page = $document->getPages()->add();
$table = new Table();
$table->setColumnWidths("120 120 120");
$page->getParagraphs()->add($table);
$r1 = $table->getRows()->add();
$c1 = $r1->getCells()->add();
$c2 = $r1->getCells()->add();
$c3 = $r1->getCells()->add();
$rf = new RadioButtonField($page);
$rf->setPartialName("radio1");
$document->getForm()->add($rf, 1);
$opt1 = new RadioButtonOptionField();
$opt2 = new RadioButtonOptionField();
$opt3 = new RadioButtonOptionField();
$opt1->setOptionName("Item1");
$opt2->setOptionName("Item2");
$opt3->setOptionName("Item3");
$opt1->setWidth(15.0);
$opt1->setHeight(15.0);
$opt2->setWidth(15.0);
$opt2->setHeight(15.0);
$opt3->setWidth(15.0);
$opt3->setHeight(15.0);
$rf->add($opt1);
$rf->add($opt2);
$rf->add($opt3);
$border1 = new Border($opt1);
$opt1->setBorder($border1);
$opt1->getBorder()->setWidth(1.0);
$opt1->getBorder()->setStyle(BorderStyle::$Solid);
$opt1->getCharacteristics()->setBorder($colors->getBlack());
$opt1->getDefaultAppearance()->setTextColor($colors->getRed()->toRgb());
$opt1->setCaption(new TextFragment("项目1"));
$border2 = new Border($opt2);
$opt3->setBorder($border2);
$opt3->getBorder()->setWidth(1.0);
$opt3->getBorder()->setStyle(BorderStyle::$Solid);
$opt2->getCharacteristics()->setBorder($colors->getBlack());
$opt2->getDefaultAppearance()->setTextColor($colors->getRed()->toRgb());
$opt2->setCaption(new TextFragment("项目2"));
$border3 = new Border($opt3);
$opt3->setBorder($border3);
$opt3->getBorder()->setWidth(1.0);
$opt3->getBorder()->setStyle(BorderStyle::$Solid);
$opt3->getCharacteristics()->setBorder($colors->getBlack());
$opt3->getDefaultAppearance()->setTextColor($colors->getRed()->toRgb());
$opt3->setCaption(new TextFragment("项目3"));
$c1->getParagraphs()->add($opt1);
$c2->getParagraphs()->add($opt2);
$c3->getParagraphs()->add($opt3);
$document->save($outputFile);
$document->close();
添加 ComboBox 字段
组合框是一个表单字段,它将在您的文档中添加一个下拉菜单。
以下代码片段展示了如何在 PDF 文档中添加 ComboBox 字段。
$document = new Document($inputFile);
// 实例化 ComboBox 字段对象
$page = $document->getPages()->get_Item(1);
$combo = new ComboBoxField($page, new Rectangle(100, 600, 150, 616));
// 向 ComboBox 添加选项
$combo->addOption("Red");
$combo->addOption("Yellow");
$combo->addOption("Green");
$combo->addOption("Blue");
// 将组合框对象添加到文档对象的表单字段集合中
$document->getForm()->add($combo);
// 保存 PDF 文档
$document->save($outputFile);
$document->close();
为表单添加工具提示
Document 类提供了一个名为 Form 的集合来管理 PDF 文档中的表单字段。 要为表单字段添加工具提示,请使用字段类 AlternateName。Adobe Acrobat 使用“备用名称”作为字段工具提示。
以下代码片段展示了如何使用 PHP 为表单字段添加工具提示。
$document = new Document($inputFile);
$textBoxField = $document->getForm()->get("textbox1");
// 为文本字段设置工具提示
$textBoxField->setAlternateName("文本框工具提示");
// 保存 PDF 文档
$document->save($outputFile);
$document->close();