function ExportXFDF(const FileName: string): Integer; overload;
function ExportXFDF(Stream: TStream): Integer; overload;
function ExportXFDFToStream(Stream: TStream): Integer;
ExportXFDF recorre todas las páginas del documento cargado y produce un
documento XFDF conforme a ISO 19444-1 con raíz en el espacio de nombres
http://ns.adobe.com/xfdf/. La salida consta de una sección
<fields> y una sección <annots>,
ambas emitidas como XML en UTF-8.
Para los campos de formulario, el método enumera las anotaciones widget
de cada página, lee el valor de cada campo y escribe un elemento
<field>. Los nombres de campo jerárquicos (calificados)
se dividen por el separador de punto y se emiten como elementos
<field> anidados, de modo que la estructura
padre/hijo hace el recorrido de ida y vuelta. Las casillas de verificación
y los botones de opción exportan su valor de exportación (el nombre
del estado de apariencia que representa el estado activado) como valor del
campo. Los campos de firma se listan, pero su valor nunca se exporta.
Las marcas de presencia de valor mantienen distinguible un valor de campo explícitamente vacío de un valor omitido, incluidos los campos anidados a más de dos niveles de profundidad
Para las anotaciones, se serializa toda anotación que no sea widget ni
popup en cada página. El exportador reconoce 18 valores de
/Subtype: text, highlight, underline, strikeout, squiggly,
line, circle, square, caret, polygon, polyline, stamp, ink, freetext,
fileattachment, sound, link y redact. Cada una se escribe como un elemento
bajo <annots> que lleva su índice de página, rectángulo
delimitador, contenido, título (autor), nombre (NM), asunto,
fechas de modificación y creación, marcas y color.
Las convenciones de codificación siguen ISO 19444-1: los colores se
escriben como cadenas hexadecimales #RRGGBB; las listas de
coordenadas (rectángulo, extremos de línea, vértices de polygon/polyline,
listas ink) son números separados por comas; y las marcas de anotación se
emiten como una lista de nombres de marca separados por comas en lugar de
una máscara de bits sin procesar.
Para las anotaciones de marcado multilínea, el atributo coords incluye cada cuadrilátero en el orden del documento en lugar de solo la primera línea
El contenido de las anotaciones usa la misma semántica de presencia, de modo que un elemento contents explícitamente vacío sobrevive a la exportación sin convertir un elemento ausente en uno vacío
PDFium en sí no expone ninguna API XFDF. ExportXFDF está implementado por completo en Pascal por PDFiumPas sobre su propio modelo de datos de anotaciones y campos de formulario, consultando a PDFium únicamente por los valores de atributo de cada anotación.
Devuelve la cantidad de bytes UTF-8 escritos. La sobrecarga
Stream acepta un TStream donde escribir; la
sobrecarga FileName acepta una ruta de archivo y crea/trunca
ese archivo. ExportXFDFToStream es un alias de la sobrecarga
Stream.
CA) and geometric data (line endpoints, polygon/polyline vertices, ink lists) are exposed through high-level records that are read-only on the PDFium side, because PDFium has no SetNumberValue setter for annotation dictionaries. These attributes are preserved as-is during export, so they round-trip through XFDF even though they cannot be edited.ImportXFDF or consumed by Acrobat, and vice versa.
// Export all fields and annotations to an .xfdf file
BytesWritten := Pdf1.ExportXFDF('C:\Data\form.xfdf');
// Or to a stream
var
Stream: TFileStream;
begin
Stream := TFileStream.Create('C:\Data\form.xfdf', fmCreate);
try
Pdf1.ExportXFDF(Stream);
finally
Stream.Free;
end;
end;