JSON- och callback-operationer för annoteringsborttagning
Windows- och de nativa Linux C ABI-operationsingångspunkterna accepterar annotations.remove; begärande-JSON väljer annoteringar, medan PDF-byte går genom callback-IO i stället för att bäddas in i JSON
{
"schemaVersion": 1,
"type": "annotations.remove",
"annotations": [{"page": 0, "name": "review-note"}],
"annotationLimits": {
"maxAnnotations": 4096,
"maxOperations": 1000000,
"maxNameBytes": 1048576,
"maxWorkingBytes": 33554432
}
}
annotations måste vara en array av objekt som innehåller ett heltal page inom det faktiska indatadokumentet och en icke-tom sträng name; namn matchar avkodad Unicode NM exakt
En tom array eller omatchade giltiga identiteter är en no-op; duplicerade selektorer, tvetydiga valda namn, felformat annoteringsägarskap och Widget-val misslyckas
Indata- och publiceringslivscykel
Utan indata-IO arbetar borttagningen på handtagets aktuella committade dokument; explicit indata-IO tillhandahåller en oberoende PDF och stagas privat i stället för att ersätta den aktuella kontexten innan operationen lyckas
Ange password när autentisering av krypterad indata kräver det; faktisk annoteringsbehörighet och signerad dokumentpolicy gäller fortfarande
PDF-utdata-IO och resultat-IO är separata sänkor; motorn förbereder kandidaten, publicerar dess PDF, publicerar det avgränsade JSON-resultatet, kontrollerar avbrott och ersätter först därefter handtagets aktuella dokument
Ett läs-, skriv-, resultatpublicerings-, policy-, budget- eller avbrottsfel behåller den tidigare committade kontexten och tillåter ett normalt nytt försök på det handtaget
En callback-sänka kan redan innehålla byte när en senare skrivning, resultat-callback eller avbrott misslyckas; kontextåterrullning kan inte återkalla de externa bytena, så anropare måste staga och publicera sina egna sänkor transaktionellt
Upprepad borttagning mot det committade resultatet returnerar noll och publicerar den exakta aktuella revisionen; jämför callback-utdata först efter att operationens status kontrollerats
Resultat och gränser
Ett lyckat resultat har schemaVersion: 1, statusCode: 0, status: "ok", removed, mediaType: "application/pdf" och annotationProfile: "page-and-nm-removal-v1"
removed inkluderar popup- och svarskaskader och räknar varje annotering en gång även när beroenden bildar en cykel
annotationLimits sänker de effektiva positiva kapaciteterna som beskrivs av THPDFHeadlessAnnotationRemovalOptions; gränser för operationsminne, objekt, sida, utdata, resultat och förfluten tid förblir oberoende
Valfri signaturePolicy konfigurerar den befintliga autentiserade CMS-policyn, inklusive nödvändig CAdES, tidsstämplar och förtroendekrav som stöds av operationsingångspunkten
Faktiska borttagningar lyder under AES-annoteringsbehörigheter och autentiserad certifieringspolicy P1/P2/P3; en lyckad lösenordskontroll eller ett osignerat felmeddelande är inte bevis för behörighet eller betrodd certifiering
Vid misslyckande, kontrollera operationens returnerade status och det tillgängliga strukturerade felresultatet; en misslyckad resultsänka kan förhindra leverans av ett komplett fel-JSON-dokument