function ImportXFDF(const FileName: string): Integer; overload;
function ImportXFDF(Stream: TStream): Integer; overload;
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
SaveAscoords; концы линии, вершины polygon/polyline и списки ink остаются доступными только для чтения, поскольку PDFium не предоставляет соответствующих сеттеров для этих числовых массивов
// Import field values and annotations from an .xfdf file
Imported := Pdf1.ImportXFDF('C:\Data\form.xfdf');
Pdf1.SaveAs('C:\Data\form_filled.pdf');