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

Se nativ borttagningssemantik och ordinära Windows-filjobb