Изменение AcroForm

Очистить текст в форме

Этот пример демонстрирует, как очистить текст из полей формы Typewriter в PDF с помощью Aspose.PDF for Python via .NET. Он сканирует первую страницу PDF, определяет формы Typewriter, удаляет их содержимое и сохраняет обновлённый документ. Такой подход полезен для сброса или санитизации полей формы перед повторным распространением PDF.

  1. Загрузите входной PDF‑документ.
  2. Получите доступ к формам на первой странице.
  3. Итерируйтесь по каждой форме и проверьте, является ли она Typewriter Form.
  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)

Удалить поля в существующей Form

Этот код удаляет конкретное поле формы (по его имени) из PDF‑документа и сохраняет обновлённый файл, используя Aspose.PDF for Python via .NET.

  1. Загрузите PDF-документ.
  2. Удалите поле Form по имени.
  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)

Связанные темы