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