THPDFHeadlessDocument.SaveRichTextFieldUpdatesToFile

function SaveRichTextFieldUpdatesToFile(const FileName: string;
  const Updates: THPDFHeadlessRichTextFieldUpdates;
  const Options: THPDFHeadlessFormDataOptions): Integer;

Подготавливает и атомарно публикует один независимый PDF со скалярными текстовыми обновлениями, полями выбора и кнопок вместе с исходными типизированными rich-text run; возвращает число изменившихся полей, оставляя граф загруженного документа без изменений

Текущий граф сериализуется в приватную аутентифицированную ревизию до применения обновлений; существующие несохранённые правки страниц и полей, учётные данные AES R5/R6, идентификаторы шифрования и подписанные префиксы источника остаются доступными кандидату

Типизированные run генерируют внешние виды напрямую, без кругового кодирования rich XML; /V и /RV описывают авторский текст и стили, а /AP сохраняет PDF-числовую точность существующего движка внешних видов для исходных типизированных размеров и цветов

Типизированный no-op требует эквивалентных простых и rich-значений плюс одинаковых сгенерированных потоков внешних видов и разрешённых графов шрифтов и ресурсов для каждого виджета; сравнение расшифровывает существующие потоки и нормализует косвенные ссылки на объекты, а не доверяет одним лишь квантованным цветам /RV

Это допускает действительно неизменённые поля «только чтение» или заблокированные подписью; другой фактический цвет отрисовки, размер, переданный шрифт или внешний вид виджета подчиняются обычным ограничениям «только чтение», FieldMDP и DocMDP, даже если сериализованное rich-значение случайно совпало

Сравнение консервативно к существующим внешним видам: сторонние PDF с эквивалентным визуальным результатом, но другим операторным или ресурсным представлением могут потребовать обычное защищённое обновление

Когда каждое запрошенное поле не изменилось и в загруженном графе нет ожидающих правок, опубликованный PDF побайтово идентичен загруженному источнику, включая существующие байты шифрования AES и аутентифицированные ревизии подписей; пустой массив обновлений следует тому же правилу с учётом существующих проверок совместимости источника

Ожидающие правки в графе вызывающего сериализуются в кандидата один раз, даже когда метод возвращает ноль изменившихся полей; не связанные несохранённые изменения страниц или полей сохраняются, а исходный загруженный граф остаётся без изменений

Публикация без обновлений всё равно выполняет валидацию прав и подписей, проверки алиасов источник/назначение, проверки бюджета вывода, отмену и атомарную замену назначения; поля «только чтение» и заблокированные требуют подлинной эквивалентности значения и внешнего вида

Это байтосохраняющее поведение относится только к этому транзакционному методу; общий метод SaveToFile и отдельные API импорта FDF/XFDF сохраняют существующее поведение сохранения

Число полей, дубликаты имён, Unicode, размеры значений и агрегатные ёмкости текста берутся из Options; число типизированных run, суммарные единицы глифов, переданные байты шрифтов, байты rich-значений, сгенерированные объекты и байты сравнения внешних видов также используют лимиты загруженного документа

Общий управляемый массив байтов шрифта считается один раз на все обновления; различные выделения расходуют отдельную входную шрифтовую ёмкость, даже когда их байты совпадают, при этом бюджеты сгенерированных PDF-объектов и вывода по-прежнему покрывают все внешние виды

Используйте токен отмены документа для опций форм и внешних видов; некорректные поля, испорченные значения, права, сбой аутентификации подписи, отмена или сбои бюджета оставляют прежнее назначение нетронутым, а алиасы источник/назначение отклоняются

API покрывает нативные смешанные транзакции; заполнение типизированным rich JSON в Windows, старое расширение job-callback, обмен аннотациями и встроенные или инкрементальные данные FDF — отдельные процессы

Запись и массив обновлений · Rich-импорт FDF/XFDF