Применение форматирования JavaScript к форме IronPDF с использованием PyMuPDFJavascript

Форум по Javascript
Ответить
Anonymous
 Применение форматирования JavaScript к форме IronPDF с использованием PyMuPDF

Сообщение Anonymous »

Я использую IronPdf (2025.6.1.5) для создания заполняемых форм PDF. Это включает в себя создание HTML-форм и преобразование их в PDF-файлы с помощью IronPDF. Я выполняю постобработку PDF-файлов с помощью PyMuPDF (1.26.4), чтобы применить элементы управления JavaScript к полям и указать форматы валюты, процентов и чисел. Я использую функции Adobe Acrobat AFNumber_Format() и AFNumber_Keystroke(). Примечание. Использование IronPDF значительно упрощает преобразование HTML-форм в PDF, а также устраняет косметический контент и форматирование. Проблема заключается в точном контроле форматов полей.
Для сравнения и устранения неполадок я создал (в основном) эквивалентную PDF-форму непосредственно (с нуля) с помощью PyMuPDF. Форма PyMuPDF обеспечивает поведение поля формы (виджета), как и ожидалось, для нажатия клавиши и числового формата в Chrome и Acrobat. Форма PyMuPDF отображает свойства полей в Acrobat Pro, как и следовало ожидать. Попытки ввода недопустимых символов блокируются в Acrobat. В Chrome отображается диалоговое окно предупреждения. Форматирование (включая символы валюты, процентов и десятичные знаки) применяется при потере фокуса.
Изображение

Форма IronPDF обеспечивает частичную функциональность JavaScript в Chrome. Попытка ввести недопустимые (нечисловые) символы в поля формы приводит к появлению диалогового окна предупреждения (выше), определяющего недопустимый ввод. Однако указанное числовое форматирование не применяется.
Сравнение постобработанной формы IronPDF и формы PyMuPDF показывает следующее:
PyMuPDF:

Код: Выделить всё

pdf __dict__: {'is_closed': False, 'is_encrypted': False, 'metadata': {'format': 'PDF 1.7', 'title': '', 'author': '', 'subject': '', 'keywords': '', 'creator': '', 'producer': '', 'creationDate': '', 'modDate': '', 'trapped': '', 'encryption': None}, 'FontInfos': [], 'Graftmaps': {}, 'ShownPages': {}, 'InsertedImages': {}, '_page_refs': , '_name': '../ACL_Forms/FormattedPDF/fillable_form2.pdf', 'stream': None, 'thisown': True, '_graft_id': 4, '_outline': 
}
IronPDF + PyMuPDF:

Код: Выделить всё

pdf __dict__: {'is_closed': False, 'is_encrypted': False, 'metadata': {'format': 'PDF 1.4', 'title': 'This is a Test', 'author': '', 'subject': '', 'keywords': '', 'creator': 'IronPdf', 'producer': 'IronPdf v2025.6.16', 'creationDate': "D:20251024154451+00'00'", 'modDate': "D:20251024154451+00'00'", 'trapped': '', 'encryption': None}, 'FontInfos': [], 'Graftmaps': {}, 'ShownPages': {}, 'InsertedImages': {}, '_page_refs': , '_name': '../ACL_Forms/FormattedPDF/fefillable_form2.pdf', 'stream': None, 'thisown': True, '_graft_id': 2, '_outline': 
}
Сценарий виджета и текстовые параметры эквивалентны. (Это поле валюты.)

Код: Выделить всё

widget script: None
widget script_blur: None
widget script_calc: None
widget script_change: None
widget script_focus: None
widget script_format: AFNumber_Format(2, 0, 0, 0, "$ ", true);
widget script_stroke: AFNumber_Keystroke(2, 0, 0, 0, "$ ", true);
widget text_color: [0.0, 0.0, 0.0]
widget text_font: Helv
widget text_fontsize: 12.0
widget text_format: 1
widget text_maxlen: 0
Однако существует разница в информации аннотации виджета:
PyMuPDF:

Код: Выделить всё

widget._annot info: {'content': '', 'name': '', 'title': 'FieldName_Currency', 'creationDate': '', 'modDate': '', 'subject': '', 'id': 'fitz-W0'}
IronPDF + PyMuPDF:

Код: Выделить всё

widget._annot info: {'content': '', 'name': '', 'title': '', 'creationDate': '', 'modDate': '', 'subject': '', 'id': ''}
Попытки set_info() для аннотации виджета оставляют виджет._annot.info без изменений.
Файлы PDF и код Python загружены на Github.
Любая помощь в определении отсутствующего свойства приветствуется. Спасибо.

Подробнее здесь: https://stackoverflow.com/questions/797 ... ng-pymupdf
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»