修改 AcroForm

在表单中清除文本

此示例演示了如何使用 Aspose.PDF for Python via .NET 清除 PDF 中 Typewriter 表单字段的文本。它会扫描 PDF 的首页,识别 Typewriter 表单,删除其内容,并保存更新后的文档。此方法对于在重新分发 PDF 之前重置或清理表单字段非常有用。

  1. 加载输入的 PDF 文档。
  2. 访问第一页上的表单。
  3. 遍历每个表单并检查它是否为 Typewriter 表单。
  4. 使用 TextFragmentAbsorber 在表单中查找文本片段。
  5. 清除每个片段的文本。
  6. 将修改后的 PDF 保存到输出文件。
import aspose.pdf as ap


def clear_text_in_form(input_file_name, output_file_name):
    document = ap.Document(input_file_name)

    forms = document.pages[1].resources.forms

    for form in forms:
        if form.it == "Typewriter" and form.subtype == "Form":
            absorber = ap.text.TextFragmentAbsorber()
            absorber.visit(form)

            for fragment in absorber.text_fragments:
                fragment.text = ""

    document.save(output_file_name)

设置字段限制

使用 set_field_limit(field, limit)FormEditor 定义文本字段允许的最大字符数。

  1. 创建一个 FormEditor 对象。
  2. 绑定输入 PDF。
  3. 为目标字段设置字段限制。
  4. 保存更新后的 PDF。
import aspose.pdf as ap


def set_field_limit(input_file_name, output_file_name):
    form = ap.facades.FormEditor()
    form.bind_pdf(input_file_name)
    form.set_field_limit("First Name", 15)
    form.save(output_file_name)

获取字段限制

您也可以从文本字段读取字符限制。

  1. 加载 PDF 文档。
  2. 访问目标表单字段。
  3. 确保该字段是 TextBoxField.
  4. 读取并打印 max_len.
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable


def get_field_limit(input_file_name):
    document = ap.Document(input_file_name)
    if is_assignable(document.form[1], ap.forms.TextBoxField):
        text_box_field = cast(ap.forms.TextBoxField, document.form[1])
        print(f"Limit: {text_box_field.max_len}")

为表单字段设置自定义字体

此示例为文本框字段设置自定义默认外观,包括字体、大小和颜色。

  1. 加载 PDF 文档。
  2. 访问目标字段并验证其类型。
  3. 在…中查找字体 FontRepository.
  4. 应用新的 DefaultAppearance.
  5. 保存更新后的 PDF。
import aspose.pdf as ap
from aspose.pycore import cast, is_assignable


def set_form_field_font(input_file_name, output_file_name):
    document = ap.Document(input_file_name)
    if is_assignable(document.form[1], ap.forms.TextBoxField):
        text_box_field = cast(ap.forms.TextBoxField, document.form[1])
        font = ap.text.FontRepository.find_font("Calibri")
        text_box_field.default_appearance = ap.annotations.DefaultAppearance(
            font, 10, ap.Color.black.to_rgb()
        )

    document.save(output_file_name)

删除现有表单中的字段

此代码通过名称从 PDF 文档中删除特定的表单字段,并使用 Aspose.PDF for Python via .NET 保存更新后的文件。

  1. 加载 PDF 文档。
  2. 按名称删除表单字段。
  3. 保存更新后的 PDF。
import aspose.pdf as ap


def delete_form_field(input_file_name, output_file_name):
    document = ap.Document(input_file_name)
    document.form.delete("First Name")
    document.save(output_file_name)

相关主题