Windows annotation XFDF-udveksling
Windows file jobs og hpdf_document_execute_json_v1 eksporterer mappede annotationer og tilføjer XFDF-annotationer gennem den autentificerede Windows-transaktionsbro
De mappede typer og properties deles med native annotation XFDF, inklusive afgrænsede binære vedhæftnings/lydstreams, Unicode rich contents, popup-objekter og fremadrettede svar
File jobs
{
"schemaVersion": 1, "type": "annotations.import", "format": "xfdf",
"input": "source.pdf", "annotationInput": "annotations.xfdf",
"output": "annotated.pdf", "password": "owner",
"annotationLimits": {"maxBytes": 1048576, "maxAnnotations": 1000},
"budget": {"memoryBytes": 268435456, "outputBytes": 134217728,
"timeMilliseconds": 60000, "resultBytes": 16777216}
}
annotations.export bruger samme format, input, output og valgfri adgangskode og skriver UTF-8 XFDF i stedet for en PDF; import kræver annotationInput
Output må ikke aliasere PDF-input, XFDF-input eller leverede trust/evidence-filer, inklusive et eksisterende hard link; publicering reserverer en eksklusiv midlertidig søsterfil, validerer afgrænsede resultater, flusher og lukker kandidaten og erstatter derefter target atomisk
Fejl og cancellation bevarer et eksisterende komplet target og fjerner operationens midlertidige fil
Originale V1-callbacks
Brug de uændrede hpdf_operation_v1 og hpdf_io_v1 fra hotpdf_abi.h; annotationsudveksling kræver ingen font-udvidelse
Indlæs destinations-PDF'en med hpdf_document_load_from_io først; import læser XFDF fra InputIO, skriver kandidat-PDF'en til OutputIO og skriver afgrænset JSON til ResultIO; eksport læser den aktive eede PDF og skriver XFDF til OutputIO
For krypteret input: gentag den operationsadgangskode, der blev brugt til at autentificere den indlæste PDF; operationen tilbageholder ikke en implicit adgangskode fra det tidligere load-kald
Kun succesfulde PDF- og resultat-callbacks efterfulgt af det sidste cancellation-checkpoint adopterer det nye dokument og ejet revision; mislykkede input-, output- eller resultat-callbacks, misdannet XML, opbrugte grænser og cancellation bevarer den tidligere kontekst
Callbacks kan modtage kandidatbytes inden en senere fejl; publicér en kalder-ejet destination først, efter at HPDF_STATUS_OK returneres
Politik, grænser og resultater
Import autentificerer eksisterende signaturintegritet og ESS signer-binding; P1- og P2-certificering nægter annotationsændringer, mens P3 tillader en annotationsrevision, der beholder de originale signerede bytes
AES-256 R5/R6-importer bevarer krypteringsparametre og det originale revisionspræfiks; en tom import autentificerer politik og bevarer de eksakte aktuelle bytes
signaturePolicy accepterer de eksisterende Boolean trust/timestamp/revocation-krav og eksplicitte trust-stier beskrevet i Windows form-data exchange
annotationLimits kan sænke maxBytes, maxAnnotations, maxNodes, maxDepth og maxWorkingBytes; værdier er positive heltals JSON-tal og kan ikke hæve de beregnede standarder
Arbejds-, output-, resultat-, objekt- og sidebudgetter gælder også; callback-operationer accepterer elapsedMilliseconds som en yderligere strammere frist
Eksport rapporterer annotationCount, skippedAnnotationCount, decodedAttachmentBytes og outputBytes; import rapporterer updated, outputBytes og annotationProfile lig mapped-annotations-v1
Grænser
Capabilities annoncerer annotationsudveksling gennem file-job og execute-json-v1 med append-kun-import, generel appearanceImport=false og afgrænset stampAppearanceImport=true
Standard stamp appearance-transport bevarer faktiske Form-streams og afgrænsede acykliske font-, image- og graphics-ressourcer gennem base64-typet XML
Generel AP-transport, annotationserstatning/-fjernelse, bredere handlinger og FDF-annotationsdata forbliver separat arbejde; remote GoToR-handlinger og lokale destinationer bruger deres eksisterende afgrænsede profiler
Den generiske ExecuteLoadedOperation og ældre job-handle callback-record er separate indgangspunkter; Pascal-kaldere kan bruge den eksplicitte transaktionsklasse
Binær FDF-udveksling
Samme file jobs og V1-callbacks accepterer format="fdf"; filimporter læser binær FDF fra annotationInput, og eksporter skriver binær FDF til det valgte output
FDF-objektgrafprofilen bevarer leverede appearance-ressourcer og delte indirekte objekter og understøtter erstatning via et matchende ikke-tomt annotation-NM på samme side
FDF-import returnerer annotationProfile="pdf-object-graph-v1"; updated tæller faktiske annotationsændringer, og en ækvivalent import bevarer den eksakte aktuelle revision
FDF tilføjer maxObjects til kontrollerne for positive heltal i annotationLimits og bruger den eksisterende autentificerede politik, afgrænset kandidatpublicering og callback-ejerskabsregler
Pascal-kaldere kan bruge THPDFWindowsFormDataTransaction.ExportAnnotationsFDF og ImportAnnotationsFDF; ChangedAnnotations rapporterer faktiske ændringer for denne profil
Ikke-tomme FDF Fields og indlejrede Differences kræver separat håndtering og fejler kun-annotations-operationer, før publicering
Windows annotationsfjernelse leverer en separat forberedt transaktion og JSON-job til eksakte side- og NM-identiteter uden at ændre den mappede XFDF-append-semantik