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