Изменение AcroForm
Очистить текст в форме
Этот пример демонстрирует, как очистить текст из полей формы Typewriter в PDF с помощью Aspose.PDF for Python via .NET. Он сканирует первую страницу PDF, определяет формы Typewriter, удаляет их содержимое и сохраняет обновлённый документ. Такой подход полезен для сброса или санитизации полей формы перед повторным распространением PDF.
- Загрузите входной PDF‑документ.
- Получите доступ к формам на первой странице.
- Итерируйтесь по каждой форме и проверьте, является ли она
TypewriterForm. - Используйте TextFragmentAbsorber для поиска текстовых фрагментов в форме.
- Очистите текст каждого фрагмента.
- Сохраните измененный 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 определить максимальное количество символов, разрешённых в текстовом поле.
- Создайте
FormEditorобъект. - Привяжите входной PDF.
- Установите ограничение поля для целевого поля.
- Сохраните обновлённый 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)
Получить ограничение поля
Вы также можете прочитать ограничение количества символов из текстового поля.
- Загрузите PDF-документ.
- Получите доступ к целевому полю формы.
- Убедитесь, что поле является
TextBoxField. - Читайте и печатать
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}")
Установить пользовательский шрифт для поля формы
Этот пример задает пользовательское оформление по умолчанию для поля ввода текста, включая шрифт, размер и цвет.
- Загрузите PDF-документ.
- Получите доступ к целевому полю и проверьте его тип.
- Найдите шрифт в
FontRepository. - Примените новое оформление
DefaultAppearance. - Сохраните обновлённый 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.
- Загрузите PDF-документ.
- Удалите поле Form по имени.
- Сохраните обновлённый 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)