Nativer Annotation-XFDF-Austausch
HPDFHeadlessXFDF exportiert gemappte Annotationen aus einem geladenen nativen PDF-Graphen und bereitet XFDF-Annotation-Importe als eigenständige inkrementelle Revision vor
HPDFExportHeadlessAnnotationsXFDF für UTF-8-XML-Bytes und SaveAnnotationsXFDFToFile verwenden, um Annotationen an ein bestehendes Dokument anzuhängen, ohne den geladenen Quellgraphen zu ändern
Gemapptes Annotation-Profil
Das Profil mappt Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact und Link
Gemeinsame Werte umfassen Seite, Rechteck, Unicode-Contents, Autor, Annotation-Name, Daten, Subject, Flags, Opazität, Farben und unterstützte Border-Eigenschaften
Typspezifische Werte umfassen Quadrilateral-Koordinaten, Vertices, Ink-Gestures, Line-Endings und Leader-Geometrie, FreeText-Intent-/Callout-/Fringe-/Default-Text-Eigenschaften, Redact-Repeat-State, URI- oder Named-Link-Actions, Remote-GoToR-Actions sowie benannte oder explizite lokale Destinations und GoTo-Actions
Leere Farbkomponenten-Arrays bewahren transparente Farben; Gray- und CMYK-Quellfarben werden auf XFDF-RGB-Werte gemappt, und RGB-Komponenten werden auf die sechsstellige Hexadezimaldarstellung des Formats quantisiert
FileAttachment-Exports bevorzugen den Unicode-Dateinamen und bewahren externe Datei-Metadaten, selbst wenn kein eingebetteter Stream existiert; eingebettete Datei- und Sounddaten werden in begrenztes kanonisches Base64 dekodiert und als echte indirekte Streams importiert, einschließlich leerer Streams
Popup-Annotationen werden als verschachtelte Popup-Elemente repräsentiert und mit indirekten Parent-, Popup- und Seiten-Links importiert; Antworten werden in einem zweiten Durchlauf gegen bestehende und neu angehängte Annotation-Namen aufgelöst, einschließlich Vorwärtsreferenzen
Rich Contents bewahren den XHTML-Namespace, geordneten gemischten Text und geerbte Namespace-Bindings
Transaktionen und Rechte
Importe hängen Annotationen an und lehnen doppelte Namen, mehrdeutige oder fehlende Antwortziele und ungültige gemappte Werte vor der Veröffentlichung ab
Ein fehlgeschlagener oder abgebrochener Import bewahrt die Zieldatei und den geladenen Quellgraphen; ein erfolgreicher Import lässt die geladene Quelle ebenfalls unverändert, also die gespeicherte Datei laden, wenn deren neue Revision übernommen werden soll
Export verlangt Extraction-Rechte, Import verlangt Annotation-Rechte; AES-256-R5/R6-Sicherheit bleibt in der gespeicherten Revision
Die tatsächliche Zertifizierungs-Policy wird über den nativen Signatur-Workflow authentifiziert: P1 und P2 verhindern Annotation-Änderungen, während P3 eine Annotation-Revision erlaubt, die die originalen signierten Bytes bewahrt
Grenzen
THPDFHeadlessXFDFOptions begrenzt Input-/Output-Bytes, Annotation-Anzahl, Graph- und XML-Nodes, Tiefe und Working Storage, mit kooperativem Abbruch
Gemappte Zahlen müssen endlich und innerhalb eines absoluten Werts von einer Million sein, mit zusätzlichen Constraints für Koordinatenanzahl, Opazität, Sample-Größen und andere typisierte Werte
Whole-Document-XML-Admission prüft Encodierung, Namespaces, doppelte Attribute, Entities und die vollständige Struktur vor dem Annotation-Mapping; DTD- und External-Entity-Verarbeitung sind deaktiviert
Operationsgrenzen
Der Standard-Stamp-Appearance-Transport bewahrt echte Form-Streams und begrenzte azyklische Font-, Bild- und Grafikressourcen über base64-typisiertes XML
Allgemeiner Annotation-AP-Transport, eigene Annotation-Dictionaries, Annotation-Ersetzung oder -Entfernung, beliebige Actions und FDF-Annotation-Daten bleiben separate Arbeiten
Annotation-Appearance-Synthese und -Rendering sind separate Operationen; das Importieren geometrischer und Text-Eigenschaften erzeugt keinen AP-Stream
Andere Quell-Annotation-Subtypen werden beim Export übersprungen und im Ergebnis gezählt; fehlerhafte ausgewählte gemappte Werte lassen die Operation fehlschlagen, ohne partielles XML zurückzugeben
Die native Pascal-API arbeitet unter Windows und Linux; die versionierte Linux-C-ABI stellt zusätzlich callback-basierte JSON-Annotation-Operationen bereit, und Windows-Dateijobs und V1-Callbacks bieten denselben gemappten Annotation-Austausch
Explizite Annotation-Entfernung
Die Seiten-und-Namen-Annotation-Entfernung ist eine separate Operation; das Weglassen einer Annotation aus importiertem FDF oder XFDF löscht sie nicht
Widget-Feldbaum-Löschung und sicheres Löschen erfordern separate Operationen; inkrementelle Entfernung bewahrt frühere PDF-Bytes