PDFium Delphi Component Docs

ExportXFDF Método

Componente: TPdf  ·  Unidade: PDFium
Serializa todos os valores de campos de formulário e anotações de todas as páginas do documento carregado em um documento XFDF (ISO 19444-1), gravado como XML UTF-8 com o namespace 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 percorre todas as páginas do documento carregado e produz um documento XFDF em conformidade com a ISO 19444-1, enraizado no namespace http://ns.adobe.com/xfdf/. A saída consiste em uma seção <fields> e uma seção <annots>, ambas emitidas como XML UTF-8.

Para campos de formulário, o método enumera as anotações de widget de cada página, lê cada valor de campo e grava um elemento <field>. Nomes de campos hierárquicos (qualificados) são divididos no separador de ponto e emitidos como elementos <field> aninhados, de modo que a estrutura pai/filho faça a viagem de ida e volta. Checkboxes e radio buttons exportam seu export value (o nome do estado de aparência que representa o estado ligado) como o valor do campo. Campos de assinatura são listados, mas seu valor nunca é exportado.

Sinalizadores de presença de valor mantêm um valor de campo explicitamente vazio distinto de um valor omitido, incluindo campos aninhados a mais de dois níveis de profundidade

Para anotações, cada anotação não widget e não popup de cada página é serializada. O exportador reconhece 18 valores de /Subtype: text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link e redact. Cada uma é gravada como um elemento sob <annots> carregando seu índice de página, retângulo delimitador, conteúdo, título (autor), nome (NM), assunto, datas de modificação e criação, sinalizadores e cor.

As convenções de codificação seguem a ISO 19444-1: cores são gravadas como strings hexadecimais #RRGGBB; listas de coordenadas (retângulo, extremidades de linha, vértices de polygon/polyline, ink lists) são números separados por vírgulas; e os sinalizadores de anotação são emitidos como uma lista separada por vírgulas de nomes de sinalizador, e não como uma máscara de bits bruta.

Para anotações de marcação de múltiplas linhas, o atributo coords inclui todos os quadriláteros na ordem do documento, em vez de apenas a primeira linha

O conteúdo das anotações usa a mesma semântica de presença, de modo que um elemento contents explicitamente vazio sobrevive à exportação sem transformar um elemento ausente em um vazio

O próprio PDFium não expõe nenhuma API XFDF. ExportXFDF é implementado inteiramente em Pascal pelo PDFium Delphi Component sobre seu próprio modelo de dados de anotações e campos de formulário, consultando o PDFium apenas para os valores de atributos por anotação.

Retorna o número de bytes UTF-8 gravados. A sobrecarga Stream aceita um TStream no qual gravar; a sobrecarga FileName aceita um caminho de arquivo e cria/trunca esse arquivo. ExportXFDFToStream é um alias para a 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