Расширенная обработка AcroForm

HotPDF умеет пересчитывать загруженные поля, заново генерировать appearance переменного текста по стандарту, разрешать состояния appearance аннотаций и уплощать выбранное множество полей без перезаписи нетронутых страниц

Порядок расчёта

RecalculateLoadedFormFields следует загруженному массиву /AcroForm /CO и вычисляет ограниченные операции AFSimple_Calculate — SUM, AVG, PRD, MIN и MAX — через безопасный вычислитель скриптов полей

ApplyLoadedFieldCalculation устанавливает действие расчёта и добавляет целевое поле в /CO без дубликатов

Безопасные скрипты полей

EvaluateLoadedFieldJavaScript вычисляет только декларативные инструкции расчёта и валидации, связанные с запрошенным триггером поля

Appearance переменного текста

EnsureLoadedFieldAppearanceStream обходит каждый виджет и наследует значения /DA, /Q, /V, /DV, /Ff и /MaxLen из иерархии полей или AcroForm

Состояния appearance аннотаций

GetLoadedAnnotationAppearanceStream разрешает appearance normal, rollover или down и делает откат от rollover или down к normal

Словари состояний используют /AS, унаследованное /V или /DV, состояние родителя, /Off и откат к единственному потоку — именно в этом порядке

Выборочное уплощение

FlattenLoadedFormFields отрисовывает только выбранные appearance виджетов на их страницах, удаляет только соответствующие поля и аннотации и сохраняет каждую нетронутую страницу и поле

Шлюз разрешений по умолчанию отказывает в структурных изменениях под DocMDP и проверяет блокировки FieldMDP All, Include и Exclude до изменения любой страницы

PDF.BeginIncrementalUpdate('SignedForm.pdf');
PDF.RecalculateLoadedFormFields;
PDF.FlattenLoadedFormFields(['Subtotal', 'Total']);
PDF.SaveIncrementalUpdate('SignedForm-updated.pdf');

Связанные API