PDFium Delphi Component Docs

ImportXFDF Метод

Компонент: TPdf  ·  Модуль: PDFium
Читает документ XFDF (ISO 19444-1) и применяет его значения полей формы и аннотации к загруженному PDF, создавая аннотации на соответствующих страницах и записывая значения полей в их виджет-аннотации

Syntax

function ImportXFDF(const FileName: string): Integer; overload;
function ImportXFDF(Stream: TStream): Integer; overload;

Description

ImportXFDF разбирает XML-документ XFDF и применяет его секции <fields> и <annots> к текущему загруженному PDF

Для каждого элемента <field> квалифицированное (с точками) имя сопоставляется с виджет-аннотациями в документе, и значение записывается в запись /V поля. Для полей-флажков и переключателей переданное экспортное значение используется для выбора соответствующего внешнего вида включённого состояния, поэтому поле отображается как отмеченное

Явно пустой элемент <value> очищает соответствующее поле, а пропущенное значение оставляет его без изменений; глубоко вложенные имена полей с точками сохраняют свою полную иерархию

Для каждого элемента аннотации создаётся новая аннотация на странице, указанной атрибутом page (с отсчётом от нуля). После создания импортёр заполняет Contents, автора (title), имя (NM), тему, ModificationDate, CreationDate, значок и флаги аннотации из соответствующих атрибутов XFDF

Возвращает общее количество обработанных полей и аннотаций

Импорт аннотаций применяет цвета RGB и внутренние цвета, сохраняет явно пустые текстовые поля, разбирает десятичные координаты независимо от региональных настроек процесса и восстанавливает каждый четырёхугольник разметки из атрибута coords

Сканер принимает элементы и атрибуты с префиксами пространств имён, смешанные текстовые узлы и узлы CDATA, ссылки на сущности XML и содержимое полей или аннотаций, значимое по пробелам; недопустимые числовые ссылки на скаляры Unicode отклоняют входные данные XFDF

Пропущенный элемент contents аннотации оставляет содержимое новой аннотации отсутствующим, а явно пустой элемент записывает пустое значение

Атрибут rect обязателен для каждой аннотации: если он отсутствует, аннотация пропускается, а не создаётся с прямоугольником нулевого размера

Разбор выполняется рукописным XML-сканером, а не полноценным XML DOM, поэтому ImportXFDF не добавляет зависимости от XML DOM

Remarks

Example

// Import field values and annotations from an .xfdf file
Imported := Pdf1.ImportXFDF('C:\Data\form.xfdf');
Pdf1.SaveAs('C:\Data\form_filled.pdf');

See Also

ExportXFDF, CreateAnnotation, Annotation, FormFieldInfo