Native annotation removal

Verwijder bestaande pagina-annotaties op basis van hun zero-based pagina-index en exacte Unicode NM-waarde, waarbij de originele PDF-revisie behouden blijft en een aparte incrementele uitvoer wordt voorbereid

De native entry point is THPDFHeadlessDocument.SaveAnnotationRemovalsToFile; gewone Windows-documenten gebruiken THPDFWindowsFormDataTransaction.RemoveAnnotations

Identiteit en afhankelijkheden

Elke identiteit bevat een geldige pagina-index en een niet-lege naam; matchen is case-gevoelig na het decoderen van de PDF-textstring, zonder Unicode-normalisatie of een match tegen weergavetekst

Dezelfde naam op verschillende pagina's identificeert verschillende annotaties; een ontbrekende naam op de geselecteerde pagina is een no-op

Het verwijderen van een annotatie verwijdert ook diens popup en replies die ervan afhangen, inclusief geneste replies en popup-afhankelijkheden; een visited-set maakt afhankelijkheidscycli eindig, en elke verwijderde annotatie telt een keer mee in het teruggegeven aantal

Alleen een popup verwijderen behoudt diens owner en wist de Popup-entry van de owner; ongerelateerde annotaties behouden hun originele volgorde en data

Gedupliceerde aangevraagde identiteiten, een ambigue aangevraagde naam op één pagina of een annotatie-dictionary die door meerdere page-array-entries wordt gedeeld, laten het falen vóór publicatie

Publicatie en veiligheid

De native methode laat het geladen document bij succes en falen ongewijzigd; laad de resulterende PDF om de verwijdering te adopteren

Publicatie gebruikt een voorbereid bestand en atomaire vervanging van de destination; een gefaalde of geannuleerde voorbereiding behoudt de bestaande destination, en de destination mag geen alias van de geladen bron zijn

Nul verwijderingen publiceren een exacte kopie van de huidige bronrevisie; dezelfde verwijdering herhalen tegen het resulterende document geeft nul terug en behoudt diens bytes

Een incrementele revisie verwijdert annotaties uit de huidige pagina-graaf terwijl oudere bytes en revisies behouden blijven; deze operatie is geen secure erasure of redaction, en verwijderde content kan herstelbaar blijven in de bestandsgeschiedenis

Permissions en resourcelimieten

Echte verwijderingen vragen geauthenticeerde annotation-permission voor versleutelde invoer en signature-policy-toelating voor ondertekende invoer; het succesvol openen van een versleutelde PDF verleent op zichzelf geen permission om annotaties te wijzigen

Geauthenticeerde certification P1 en P2 verwerpen annotatiewijzigingen; een toegelaten P3-update behoudt de originele signed bytes, met checks op signature-integriteit en certificate-binding toegepast op het echte document

Configureer vereist certificate-trust, timestamps en revocation-policy expliciet wanneer die checks deel uitmaken van de security-eisen van de applicatie

Removal-opties klempen annotatieaantal, operatiewerk, naamopslag en werkgeheugen af, met coöperatieve annulering gedeeld met het document of de transactie

Huidige grens

Een geselecteerde Widget, of een Widget die via verwijderingsafhankelijkheden wordt bereikt, wordt geweigerd omdat het verwijderen van formvelden een AcroForm field-tree-transactie vraagt; deze API verwijdert geen velden en koppelt diens widgets niet stilletjes los

De operatie voert geen annotation-actions of scripts uit en interpreteert verwijdering niet als het toepassen van een Redact-annotatie

Zie JSON- en callback-operaties voor annotations.remove, expliciete input-IO en de aparte PDF-, resultaat- en context-commit-stadia