PDFium Delphi Component Docs

ExportXFDF metod

Component: TPdf  ·  Unit: PDFium
Serijalizuje svaku vrednost polja obrasca i anotaciju na svim stranicama učitanog dokumenta u XFDF (ISO 19444-1) dokument, zapisan kao UTF-8 XML sa imenskim prostorom 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 prolazi kroz svaku stranicu učitanog dokumenta i proizvodi XFDF dokument usaglašen sa ISO 19444-1, ukorenjen u imenskom prostoru http://ns.adobe.com/xfdf/. Izlaz se sastoji od sekcije <fields> i sekcije <annots>, obe emitovane kao UTF-8 XML.

Za polja obrasca, metoda nabraja widget anotacije svake stranice, čita svaku vrednost polja i piše element <field>. Hijerarhijska (kvalifikovana) imena polja se dele na separatoru tačke i emituju kao ugnježdeni <field> elementi tako da struktura roditelj/dete opstaje kroz povratni krug. Checkbox-i i radio dugmad izvoze svoju vrednost izvoza (ime appearance-stanja koje predstavlja uključeno stanje) kao vrednost polja. Polja potpisa se navode, ali se njihova vrednost nikada ne izvozi.

Zastavice prisutnosti vrednosti čuvaju razliku između eksplicitno prazne vrednosti polja i izostavljene vrednosti, uključujući polja ugnježdena dublje od dva nivoa

Za anotacije, serijalizuje se svaka anotacija koja nije widget niti popup, na svakoj stranici. Izvoznik prepoznaje 18 vrednosti /Subtype: text, highlight, underline, strikeout, squiggly, line, circle, square, caret, polygon, polyline, stamp, ink, freetext, fileattachment, sound, link i redact. Svaka se piše kao element pod <annots> koji nosi indeks stranice, granični pravougaonik, sadržaj, naslov (autora), ime (NM), subjekt, datume izmene i kreiranja, zastavice i boju.

Konvencije kodiranja prate ISO 19444-1: boje se pišu kao heksadekadni stringovi #RRGGBB; liste koordinata (pravougaonik, krajevi linije, temena polygon/polyline, ink liste) su brojevi razdvojeni zapetama; a zastavice anotacija se emituju kao lista imena zastavica razdvojenih zapetama umesto kao sirova bitmaska.

Za višeredne markup anotacije, atribut coords uključuje svaki četvorougao u redosledu dokumenta, a ne samo prvu liniju

Sadržaj anotacije koristi istu semantiku prisutnosti, pa eksplicitno prazan element contents preživljava izvoz bez pretvaranja odsutnog elementa u prazan

Sam PDFium ne izlaže XFDF API. ExportXFDF je u potpunosti implementiran u Pascal-u od strane PDFiumPas, na vrhu sopstvenog modela podataka anotacija i polja obrasca, koristeći PDFium samo za vrednosti atributa po anotaciji.

Vraća broj napisanih UTF-8 bajtova. Stream overload prihvata TStream u koji se piše; FileName overload prihvata putanju datoteke i kreira tu datoteku ili je skraćuje. ExportXFDFToStream je alias za Stream overload.

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