PDFium Component Docs

Método ExportXFDF

Componente: TPdf  ·  Unidad: PDFium
Serializa cada valor de campo de formulario y anotación de todas las páginas del documento abierto en un documento XFDF (ISO 19444-1), escrito como XML UTF-8 con el espacio de nombres http://ns.adobe.com/xfdf/

Syntax

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

Description

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.

Remarks

Example

// 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;

See Also

ImportXFDF, Annotation, AnnotationCount, FormFieldInfo