Rimozione nativa delle annotazioni

Rimuove le annotazioni di pagina esistenti per il loro indice di pagina a base zero e il valore NM Unicode esatto, conservando la revisione PDF originale e preparando un output incrementale separato

Il punto di ingresso nativo è THPDFHeadlessDocument.SaveAnnotationRemovalsToFile; i documenti Windows ordinari usano THPDFWindowsFormDataTransaction.RemoveAnnotations

Identità e dipendenze

Ciascuna identità contiene un indice di pagina valido e un nome non vuoto; la corrispondenza distingue le maiuscole dopo la decodifica della stringa di testo PDF, senza normalizzazione Unicode né confronto con il testo visualizzato

Lo stesso nome su pagine diverse identifica annotazioni diverse; un nome assente nella pagina selezionata è un no-op

Rimuovere un'annotazione rimuove anche il suo popup e le risposte che dipendono da essa, incluse risposte annidate e dipendenze di popup; un insieme di visitati rende finiti i cicli di dipendenza, e ogni annotazione rimossa contribuisce una volta al conteggio restituito

Rimuovere solo un popup conserva il suo proprietario e azzera la voce Popup del proprietario; le annotazioni non correlate conservano il loro ordine e dati originali

Identità richieste duplicate, un nome richiesto ambiguo su una pagina o un dizionario di annotazione condiviso da più voci dell'array di pagine causano fallimento prima della pubblicazione

Pubblicazione e sicurezza

Il metodo nativo lascia il documento caricato invariato sia nel successo sia nel fallimento; caricare il PDF risultante per adottare la rimozione

La pubblicazione usa un file preparato e la sostituzione atomica della destinazione; una preparazione fallita o cancellata preserva la destinazione esistente, e la destinazione non deve essere un alias della sorgente caricata

Zero rimozioni pubblica una copia esatta della revisione corrente della sorgente; ripetere la stessa rimozione sul documento risultante restituisce zero e ne conserva i byte

Una revisione incrementale rimuove le annotazioni dal grafo di pagine corrente conservando byte e revisioni precedenti; questa operazione non è cancellazione sicura né redazione, e il contenuto eliminato può restare recuperabile dalla cronologia del file

Permessi e limiti di risorse

Le rimozioni effettive richiedono il permesso autenticato di annotazione per input cifrato e l'ammissione della politica delle firme per input firmato; aprire con successo un PDF cifrato non concede di per sé il permesso di modificare le annotazioni

La certificazione autenticata P1 e P2 rifiuta le modifiche alle annotazioni; un aggiornamento P3 consentito conserva i byte firmati originali, con verifiche di integrità della firma e binding dei certificati applicate al documento effettivo

Configurare esplicitamente il trust dei certificati richiesto, i timestamp e la politica di revoca quando quelle verifiche fanno parte dei requisiti di sicurezza dell'applicazione

Le opzioni di rimozione limitano conteggio di annotazioni, lavoro dell'operazione, archiviazione dei nomi e memoria di lavoro, con cancellazione cooperativa condivisa con il documento o la transazione

Confini attuali

Un Widget selezionato, o un Widget raggiunto tramite dipendenze di rimozione, viene rifiutato perché l'eliminazione dei campi modulo richiede una transazione dell'albero di campi AcroForm; questa API non cancella campi né stacca silenziosamente i loro widget

L'operazione non esegue azioni o script delle annotazioni e non interpreta la rimozione come applicazione di un'annotazione Redact

Per annotations.remove, IO di input esplicito e le fasi separate di commit di PDF, risultato e contesto vedere le operazioni JSON e callback