PDFium Delphi Component Docs

Método ExportXFDF

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

Para os campos de formulário, o método enumera as anotações widget de cada página, lê o valor de cada campo e escreve um elemento <field>. Os nomes de campos hierárquicos (qualificados) são divididos no separador de ponto e emitidos como elementos <field> aninhados, para que a estrutura pai/filho faça o percurso de ida e volta. As caixas de verificação e os botões de opção exportam o seu valor de exportação (o nome do estado de aparência que representa o estado ligado) como valor do campo. Os campos de assinatura são listados, mas o seu valor nunca é exportado

As flags 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 as 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 é escrita como um elemento sob <annots> transportando o seu índice de página, retângulo delimitador, conteúdo, título (autor), nome (NM), assunto, datas de modificação e criação, flags e cor

As convenções de codificação seguem a ISO 19444-1: as cores são escritas como cadeias hexadecimais #RRGGBB; as listas de coordenadas (retângulo, extremos de linha, vértices de polygon/polyline, listas de ink) são números separados por vírgulas; e as flags de anotação são emitidas como uma lista separada por vírgulas de nomes de flag em vez de uma máscara de bits bruta

Para anotações de marcação multi-linha, o atributo coords inclui todos os quadriláteros pela ordem do documento em vez de apenas a primeira linha

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

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

Devolve o número de bytes UTF-8 escritos. A sobrecarga Stream aceita um TStream onde escrever; a sobrecarga FileName aceita um caminho de ficheiro e cria/trunca esse ficheiro. ExportXFDFToStream é um alias da 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