function ExportXFDF(const FileName: string): Integer; overload;
function ExportXFDF(Stream: TStream): Integer; overload;
function ExportXFDFToStream(Stream: TStream): Integer;
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.
CA) e dados geométricos (extremidades de linha, vértices de polygon/polyline, ink lists) são expostos por meio de records de alto nível que são somente leitura no lado do PDFium, porque o PDFium não tem um setter SetNumberValue para dicionários de anotação. Esses atributos são preservados como estão durante a exportação, de modo que fazem a viagem de ida e volta pelo XFDF mesmo sem poderem ser editados.ImportXFDF ou consumido pelo Acrobat, e 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;