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