Native annotation XFDF exchange
HPDFHeadlessXFDF exporteert mapped annotaties uit een geladen native PDF-graaf en bereidt XFDF-annotatie-imports voor als een onafhankelijke incrementele revisie
Gebruik HPDFExportHeadlessAnnotationsXFDF voor UTF-8 XML-bytes en SaveAnnotationsXFDFToFile om annotaties aan een bestaand document toe te voegen zonder de geladen brongraaf te wijzigen
Mapped annotation profile
Het profiel mapt Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact en Link
Algemene waarden omvatten pagina, rechthoek, Unicode contents, auteur, annotatienaam, data, subject, flags, opacity, kleuren en ondersteunde border-properties
Type-specifieke waarden omvatten quadrilateral-coördinaten, vertices, ink-gestures, line endings en leader-geometrie, FreeText intent/callout/fringe/default-tekst-properties, Redact repeat-status, URI- of Named-link-actions, remote GoToR-actions en benoemde of expliciete lokale destinations en GoTo-actions
Lege kleurcomponent-arrays behouden transparante kleuren; Gray- en CMYK-bronkleuren worden gemapt naar XFDF RGB-waarden, en RGB-componenten worden gequantiseerd naar de zescijferige hexadecimale representatie van het formaat
FileAttachment-export prefereert de Unicode-bestandsnaam en behoudt externe bestandsmetadata zelfs wanneer geen embedded stream bestaat; embedded file- en sound-data worden gedecodeerd naar begrensde canonieke base64 en geïmporteerd als echte indirecte streams, inclusief lege streams
Popup-annotaties worden gerepresenteerd als nested popup-elementen en geïmporteerd met indirecte Parent-, Popup- en paginalinks; replies worden in een tweede pass opgelost tegen bestaande en nieuw toegevoegde annotatienamen, inclusief forward references
Rich contents behouden de XHTML-namespace, geordende mixed text en geërfde namespace-bindingen
Transacties en permissions
Imports voegen annotaties toe en verwerpen dubbele namen, ambigue of ontbrekende reply-targets en ongeldige mapped waarden vóór publicatie
Een gefaalde of geannuleerde import behoudt het bestand en de geladen brongraaf; een geslaagde import laat de geladen bron ook ongewijzigd, dus laad het opgeslagen bestand wanneer je diens nieuwe revisie wilt adopteren
Export vraagt extractiepermissie en import vraagt annotation-permission; AES-256 R5/R6-security blijft in de opgeslagen revisie
Echte certification-policy wordt geauthenticeerd via de native signature-workflow: P1 en P2 verhinderen annotatiewijzigingen, terwijl P3 een annotatierevisie toestaat die de originele signed bytes behoudt
Grenzen
THPDFHeadlessXFDFOptions klemt invoer-/uitvoerbytes, annotatieaantal, graaf- en XML-nodes, diepte en working storage af, met coöperatieve annulering
Mapped getallen moeten eindig zijn en binnen een absolute waarde van één miljoen liggen, met extra constraints voor coördinaten-aantallen, opacity, samplegroottes en andere getypeerde waarden
Whole-document XML-admission checkt encoding, namespaces, dubbele attributes, entities en complete structuur vóór annotatiemapping; DTD- en externe entity-verwerking zijn uitgeschakeld
Operation-grenzen
Standard stamp appearance transport behoudt echte Form-streams en begrensde acyclische font-, image- en graphics-resources via base64 typed XML
Algemeen annotatie-AP-transport, custom annotatie-dictionaries, annotatievervanging/-verwijdering, willekeurige actions en FDF-annotatiedata blijven apart werk
Annotation appearance-synthese en -rendering zijn aparte operaties; het importeren van geometrische en tekst-properties maakt geen AP-stream aan
Andere bron-annotatie-subtypes worden tijdens export overgeslagen en in het resultaat geteld; misvormde geselecteerde mapped waarden laten de operatie falen zonder partiele teruggegeven XML
De native Pascal-API werkt op Windows en Linux; de versioned Linux C ABI legt ook callback-gebaseerde JSON-annotatieoperaties bloot, en Windows file-jobs en V1-callbacks leggen dezelfde mapped annotation-exchange bloot