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