Redaction

Redaction

Denna sida behandlar permanent borttagning av innehåll från en PDF-sida. Aspose.PDF FOSS för TypeScript erbjuder två raderingsarbetsflöden: ett tvåstegigt markera-sedan-tillämpa-flöde som du granskar innan du bekräftar, och ett enstaka anrop-omedelbart-flöde. Båda finns tillgängliga på Page för en enskild sida och på Document för hela dokumentet.


Markering och tillämpning av raderingar

Page.AddRedact() markerar ett rektangulärt område med en /Redact-annotation — innehållet under förblir orört och är fortfarande kopieringsbart. Ingenting tas faktiskt bort förrän Page.ApplyRedactions() körs: den skriver destruktivt om innehållsströmmen för varje /Redact-markering på sidan, målar varje markeringens överlagring (dess /IC fyllning och /OverlayText), tar bort markeringarna och returnerar antalet tillämpade raderingar. Markeringar som läggs till efter att ApplyRedactions() anropats förblir oapplyed.

page.AddRedact({
  rect: [220, 550, 460, 566],
  fill: [0, 0, 0],
  overlayText: '[REDACTED]',
  align: 'center',
  fontSize: 9,
  textColor: [1, 1, 1],
});

const applied = page.ApplyRedactions();
console.log('Redactions applied:', applied);

Omedelbar radering

Page.Redact() och Page.RedactText() kombinerar markering och tillämpning i ett enda anrop: de tar verkligen bort täckt text och bilder, rensar resurser som borttagandet lämnar föräldralösa, och målar en ogenomskinlig markeringsruta över varje område — utan ett separat ApplyRedactions()-steg och utan något att granska först. Page.Redact() tar emot en explicit lista över Rect områden; Page.RedactText() hittar och raderar varje förekomst av en söksträng eller RegExp, på samma sätt som Page.SearchAnnotationText() söker. Båda accepterar ett RedactOptions-objekt som styr markerings-color, huruvida man ska scrubMetadata, och huruvida man ska keepAnnotations som överlappar ett raderat område.

Eftersom de tar bort innehåll omedelbart utan granskningssteg, föredra AddRedact() + ApplyRedactions() när en markering bör kunna inspekteras innan den bekräftas, och Redact() / RedactText() när regionerna eller söksträngarna redan är kända för att vara säkra att ta bort.


Röjning av ett helt dokument

Samma två arbetsflöden finns på Document, tillämpade på varje sida samtidigt: Document.MarkRedactText() markerar varje förekomst av ett sökord på alla sidor, Document.ApplyRedactions() tillämpar varje markering i dokumentet, och Document.Redact() / Document.RedactText() röjer en enskild sidas regioner eller ett dokumentomfattande sökord omedelbart, vilket speglar deras Page motsvarigheter.


Tips och bästa praxis

  • Använd AddRedact() + ApplyRedactions() när en röjning ska kunna granskas innan den verkställs; använd Redact() / RedactText() när regionerna redan är bekräftade som säkra att ta bort omedelbart.
  • Lägg till varje AddRedact()-markering för en sida innan du anropar ApplyRedactions() — markeringar som läggs till efteråt inkluderas inte i det anropet och förblir oapplyerade.
  • Skicka scrubMetadata: true i RedactOptions / ApplyRedactionsOptions när det röjda innehållet också kan finnas i dokumentmetadata (/Info eller XMP).
  • RedactText() och MarkRedactText() söker med samma matchningsregler som SearchAnnotationText() / Search, så en söksträng som misslyckas med att matcha där kommer också misslyckas med att röja.

Vanliga problem

ProblemOrsakLösning
Raderingsmarkering har ingen effektPage.ApplyRedactions() anropades aldrigAnropa Page.AddRedact() för varje markering först, sedan Page.ApplyRedactions() en gång
Innehållet kan fortfarande återställas efter en markeringMarkeringen använde AddRedact() (mark-only) utan ett efterföljande ApplyRedactions()-anropAnropa ApplyRedactions(), eller använd Redact() / RedactText() för engångsborttagning
Raderad text återkommer i extraherad dokumentmetadatascrubMetadata var inte angivetSkicka { scrubMetadata: true } i options-objektet
ApplyRedactions() returnerar 0Inga /Redact markeringar existerade på sidan när den anropadesBekräfta att AddRedact() (eller MarkRedactText()) kördes först och riktade mot samma sida

FAQ

Vad är skillnaden mellan AddRedact och Redact?

AddRedact() markerar bara ett område — innehållet är fortfarande närvarande och kan kopieras tills ApplyRedactions() körs. Redact() tar bort innehållet i samma anrop, utan ett separat tillämpningssteg.

Kan jag maskera genom att söka efter text istället för att ange koordinater?

Ja. RedactText() hittar och maskerar omedelbart varje förekomst av en söksträng eller RegExp; MarkRedactText() gör samma sak men markerar bara träffarna, och lämnar dem för ett senare ApplyRedactions()-anrop.

Fungerar maskering över hela dokumentet, eller bara en sida åt gången?

Båda. Page.Redact() / Page.ApplyRedactions() och deras motsvarigheter arbetar på en sida; Document.Redact() / Document.ApplyRedactions() och deras motsvarigheter arbetar över alla sidor.

Tas även annotationer nära ett maskerat område bort?

Endast om du låter dem vara. Skicka keepAnnotations: true i options-objektet för att bevara annotationer som överlappar ett redigerat område istället för att ta bort dem tillsammans med det.


API Reference Sammanfattning

Klass/MetodBeskrivning
Page.AddRedact()Markera ett rektangulärt område med en /Redact-annotation, utan att ta bort innehållet ännu
Page.ApplyRedactions()Ta bort alla markerade områden på sidan permanent och returnera det tillämpade antalet
Page.Redact()Ta omedelbart bort innehållet i de angivna områdena, utan ett separat tillämpningssteg
Page.RedactText()Hitta och omedelbart maskera varje förekomst av en söksträng eller RegExp
Page.MarkRedactText()Sök och markera (utan att tillämpa) varje förekomst av en söksträng eller RegExp
Document.ApplyRedactions()Tillämpa varje /Redact-markering i hela dokumentet
Document.Redact() / Document.RedactText()Maskera omedelbart regioner på en sida, eller ett sökord på alla sidor
Document.MarkRedactText()Markera varje förekomst av ett sökord på alla sidor

Se även

 Svenska