Scambio XFDF delle annotazioni native

HPDFHeadlessXFDF esporta le annotazioni mappate da un grafo PDF nativo caricato e prepara gli import di annotazioni XFDF come revisione incrementale indipendente

Usare HPDFExportHeadlessAnnotationsXFDF per i byte XML UTF-8 e SaveAnnotationsXFDFToFile per aggiungere annotazioni a un documento esistente senza cambiare il grafo sorgente caricato

Profilo delle annotazioni mappate

Il profilo mappa Text, FreeText, Line, Square, Circle, Polygon, PolyLine, Highlight, Underline, StrikeOut, Squiggly, Stamp, Ink, Caret, FileAttachment, Sound, Redact e Link

I valori comuni includono pagina, rettangolo, contenuti Unicode, autore, nome dell'annotazione, date, subject, flag, opacità, colori e proprietà di bordo supportate

I valori specifici per tipo includono coordinate dei quadrilateri, vertici, tratti ink, estremità delle linee e geometria dei leader, proprietà intent/callout/fringe/default text di FreeText, stato repeat di Redact, azioni link URI o Named e destinazioni named o esplicite locali e azioni GoTo

Gli array di componenti colore vuoti preservano i colori trasparenti; i colori sorgente Gray e CMYK vengono mappati a valori XFDF RGB, e le componenti RGB sono quantizzate alla rappresentazione esadecimale a sei cifre del formato

L'export di FileAttachment privilegia il nome file Unicode e preserva i metadati del file esterno anche quando non esiste uno stream incorporato; i dati di file e suoni incorporati vengono decodificati in base64 canonico limitato e importati come stream indiretti reali, inclusi gli stream vuoti

Le annotazioni Popup sono rappresentate come elementi popup annidati e importate con link indiretti a Parent, Popup e pagina; le reply vengono risolte in un secondo passaggio contro i nomi di annotazione esistenti e appena aggiunti, inclusi i forward reference

I rich content preservano il namespace XHTML, il testo misto ordinato e i binding di namespace ereditati

Transazioni e permessi

Gli import aggiungono annotazioni e rifiutano nomi duplicati, target di reply ambigui o mancanti e valori mappati non validi prima della pubblicazione

Un import fallito o cancellato preserva il file di destinazione e il grafo sorgente caricato; un import riuscito lascia comunque invariata la sorgente caricata, quindi ricaricare il file salvato quando si vuole adottarne la nuova revisione

L'export richiede il permesso di estrazione e l'import il permesso di annotazione; la sicurezza AES-256 R5/R6 resta nella revisione salvata

La policy di certificazione effettiva viene autenticata tramite il workflow di firma nativo: P1 e P2 impediscono modifiche alle annotazioni, mentre P3 permette una revisione delle annotazioni che preservi i byte firmati originali

Bound

THPDFHeadlessXFDFOptions limita i byte di input/output, il conteggio delle annotazioni, i nodi del grafo e dell'XML, la profondità e la working storage, con cancellazione cooperativa

I numeri mappati devono essere finiti e entro un valore assoluto di un milione, con vincoli aggiuntivi per conteggi di coordinate, opacità, dimensioni dei campioni e altri valori tipizzati

L'ammissione XML dell'intero documento verifica encoding, namespace, attributi duplicati, entità e struttura completa prima del mapping delle annotazioni; l'elaborazione di DTD ed entità esterne è disattivata

Confini operativi

Il profilo non trasporta stream di appearance AP arbitrari, dizionari di annotazione custom, sostituzione o rimozione di annotazioni, destinazioni remote, azioni arbitrarie o dati FDF di annotazioni

Sintesi e rendering delle appearance delle annotazioni sono operazioni separate; importare proprietà geometriche e testuali non crea uno stream AP

Gli altri sottotipi di annotazione sorgente vengono saltati durante l'export e contati nel risultato; i valori mappati selezionati malformati fanno fallire l'operazione senza XML parziale restituito

La API Pascal nativa funziona su Windows e Linux; la C ABI Linux versionata espone anche operazioni JSON su annotazioni via callback, e i file job Windows e i callback V1 espongono lo stesso scambio di annotazioni mappate

La API Pascal nativa funziona su Windows e Linux; il C ABI Linux versionato espone anche operazioni JSON di annotazioni basate su callback, e i file job Windows e i callback V1 espongono lo stesso scambio di annotazioni mappate

Rimozione esplicita delle annotazioni

La rimozione delle annotazioni per pagina e nome è un'operazione separata; omettere un'annotazione dall'FDF o XFDF importato non la cancella

La cancellazione dell'albero di campi Widget e la cancellazione sicura richiedono operazioni separate; la rimozione incrementale conserva i byte PDF precedenti