Розширена обробка AcroForm
HotPDF може повторно обчислювати завантажені поля, відновлювати стандартні зовнішні вигляди полів зі змінним текстом, визначати стан зовнішнього вигляду анотацій і сплощувати вибраний набір полів без перезапису незмінених сторінок
Порядок обчислень
RecalculateLoadedFormFields дотримується завантаженого масиву /AcroForm /CO та обчислює обмежені операції AFSimple_Calculate: SUM, AVG, PRD, MIN і MAX через безпечний обчислювач сценаріїв полів
ApplyLoadedFieldCalculation встановлює дію обчислення та додає цільове поле в /CO без дубльованих записів
Безпечні сценарії полів
EvaluateLoadedFieldJavaScript обчислює лише декларативні оператори обчислення та перевірки, пов'язані із запитуваним тригером поля
- Вирази підтримують булеві, числові, рядкові значення, null, undefined і масиви з арифметичними, унарними операторами порівняння, рівності, короткозамкненої логіки та умовними операторами
event.valueзберігає семантику рядкового введення, тоді як числовий текст поля залишається числовим для сумісності з існуючими обчисленнями- Дозволені допоміжні функції охоплюють перетворення чисел і рядків, аналіз, обрані функції
Math, детермінований аналіз і побудову дати за UTC, а також обмежену перевірку рядків і масивів AFSimple_Calculate,AFRange_Validate, присвоєнняevent.valueта присвоєнняevent.rcзабезпечують детерміновані результати обчислення та перевірки- Цикли, динамічна оцінка, доступ до застосунку, надсилання, імпорт, запуск та інший активний вміст відхиляються
- Обмеження становлять 8192 байти сценарію, 32 оператори, 4096 байтів виразу, 32 рівні аналізатора, 1024 операції, 64 аргументи, 128 елементів масиву, 65536 байтів рядка та 262144 байти відстежуваних значень
Зовнішні вигляди полів зі змінним текстом
EnsureLoadedFieldAppearanceStream обходить кожен віджет і успадковує значення /DA, /Q, /V, /DV, /Ff і /MaxLen з ієрархії поля або AcroForm
- Ліве, центральне та праве вирівнювання використовують локальні координати зовнішнього вигляду віджета
- Багаторядковий текст отримує обмежене розміщення рядків і обрізання
- Нульовий розмір шрифту зовнішнього вигляду за замовчуванням запускає автоматичне масштабування
- Комбіновані поля розміщують кожен символ незалежно в комірках
/MaxLen
Стани зовнішнього вигляду анотацій
GetLoadedAnnotationAppearanceStream визначає звичайний, наведений або натиснутий зовнішній вигляд і переходить від наведеного або натиснутого до звичайного
Словники станів використовують /AS, успадковане /V або /DV, стан батька, /Off і резервний єдиний потік у такому порядку
Вибіркове сплощення
FlattenLoadedFormFields відмальовує лише обрані зовнішні вигляди віджетів у їхніх сторінках, видаляє лише відповідні поля та анотації та зберігає кожну незмінену сторінку й поле
Стандартний воріт дозволів відхиляє структурні зміни під DocMDP і дотримується блокувань FieldMDP All, Include та Exclude до модифікації будь-якої сторінки
PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');