Redaction
Redaction
Deze pagina behandelt het permanent verwijderen van inhoud van een PDF-pagina. Aspose.PDF FOSS voor TypeScript biedt twee redactieworkflows: een twee-fasen markeer-dan-toepassen stroom die u kunt beoordelen voordat u commit, en een één-oproep onmiddellijke stroom. Beide zijn beschikbaar op Page voor één enkele pagina en op Document voor het gehele document.
Markeren en Toepassen van Redacties
Page.AddRedact() markeert een rechthoekig gebied met een /Redact annotatie — de onderliggende inhoud blijft onaangeraakt en nog steeds selecteerbaar voor kopiëren. Er wordt niets daadwerkelijk verwijderd totdat Page.ApplyRedactions() wordt uitgevoerd: het herschrijft destructief de content-stroom voor elke /Redact markering op de pagina, schildert de overlay van elke markering (zijn /IC vulling en /OverlayText), verwijdert de markeringen, en retourneert het aantal toegepaste redacties. Markeringen die na het aanroepen van ApplyRedactions() worden toegevoegd, blijven ongebruikt.
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);Onmiddellijk Redigeren
Page.Redact() en Page.RedactText() combineren markeren en toepassen in één enkele oproep: ze verwijderen werkelijk de bedekte tekst en afbeeldingen, snoeien bronnen die door de verwijdering verweesd achterblijven, en schilderen een ondoorzichtige markeringsvak over elk gebied — zonder een aparte ApplyRedactions() stap en zonder iets eerst te kunnen beoordelen. Page.Redact() neemt een expliciete lijst van Rect gebieden; Page.RedactText() vindt en redigeert elke voorkoming van een zoekstring of RegExp, op dezelfde manier als Page.SearchAnnotationText() zoekt. Beide accepteren een RedactOptions object dat de marker color beheert, of er scrubMetadata moet worden, en of er keepAnnotations moet worden dat een geredigeerde regio overlapt.
Omdat ze inhoud onmiddellijk verwijderen zonder een beoordelingsstap, geef de voorkeur aan AddRedact() + ApplyRedactions() wanneer een markering controleerbaar moet zijn voordat deze wordt vastgelegd, en aan Redact() / RedactText() wanneer de gebieden of zoektermen al bekend zijn als veilig om te verwijderen.
Een heel document redigeren
Dezelfde twee workflows bestaan op Document, van toepassing op alle pagina’s tegelijk: Document.MarkRedactText() markeert elke voorkomen van een zoekterm op alle pagina’s, Document.ApplyRedactions() past elke markering in het document toe, en Document.Redact() / Document.RedactText() redigeren onmiddellijk de regio’s van een enkele pagina of een documentbrede zoekterm, waarbij ze hun Page equivalenten weerspiegelen.
Tips en best practices
- Gebruik
AddRedact()+ApplyRedactions()wanneer een redactie controleerbaar moet zijn voordat deze van kracht wordt; gebruikRedact()/RedactText()wanneer de regio’s al bevestigd veilig zijn om onmiddellijk te verwijderen. - Voeg elke
AddRedact()markering voor een pagina toe voordat jeApplyRedactions()aanroept — markeringen die daarna worden toegevoegd, worden niet meegenomen in die oproep en blijven niet toegepast. - Geef
scrubMetadata: truedoor inRedactOptions/ApplyRedactionsOptionswanneer de geredigeerde inhoud mogelijk ook aanwezig is in documentmetadata (/Infoof XMP). RedactText()enMarkRedactText()zoeken met dezelfde overeenkomstreeksen alsSearchAnnotationText()/Search, dus een zoekterm die daar niet overeenkomt, zal ook niet redigeren.
Veelvoorkomende problemen
| Probleem | Oorzaak | Oplossing |
|---|---|---|
| Redactiemarkering heeft geen effect | Page.ApplyRedactions() werd nooit aangeroepen | Roep Page.AddRedact() eerst voor elke markering aan, daarna Page.ApplyRedactions() één keer |
| Inhoud is nog steeds herstelbaar na een markering | De markering gebruikte AddRedact() (alleen markering) zonder een daaropvolgende ApplyRedactions()-aanroep | Roep ApplyRedactions() aan, of gebruik Redact() / RedactText() voor eenmalige verwijdering |
| Gecensureerde tekst verschijnt opnieuw in de metadata van het geëxtraheerde document | scrubMetadata was niet ingesteld | Geef { scrubMetadata: true } door in het optiesobject |
ApplyRedactions() retourneert 0 | Er bestonden geen /Redact-markeringen op de pagina toen deze werd aangeroepen | Bevestig dat AddRedact() (of MarkRedactText()) eerst werd uitgevoerd en dezelfde pagina targette |
FAQ
Wat is het verschil tussen AddRedact en Redact?
AddRedact() markeert alleen een gebied — de inhoud is nog steeds aanwezig en kan worden gekopieerd en geselecteerd totdat ApplyRedactions() wordt uitgevoerd. Redact() verwijdert de inhoud in dezelfde oproep, zonder een aparte toepasstap.
Kan ik redact toepassen door te zoeken naar tekst in plaats van coördinaten op te geven?
Ja. RedactText() vindt en redigeert onmiddellijk elke voorkoming van een zoekstring of RegExp; MarkRedactText() doet hetzelfde maar markeert alleen de overeenkomsten, zodat ze later door een ApplyRedactions()-aanroep kunnen worden verwerkt.
Werkt redactie over het hele document, of slechts één pagina per keer?
Beide. Page.Redact() / Page.ApplyRedactions() en hun verwanten werken op één pagina; Document.Redact() / Document.ApplyRedactions() en hun verwanten werken over elke pagina.
Worden annotaties in de buurt van een geredigeerd gebied ook verwijderd?
Alleen als je ze laat zijn. Geef keepAnnotations: true door in het optiesobject om annotaties die overlappen met een geredigeerd gebied te behouden in plaats van ze samen met dat gebied te verwijderen.
API Reference Samenvatting
| Klasse/Methode | Beschrijving |
|---|---|
Page.AddRedact() | Markeer een rechthoekig gebied met een /Redact-annotatie, zonder de inhoud nog te verwijderen |
Page.ApplyRedactions() | Verwijder alle gemarkeerde regio’s op de pagina definitief en retourneer het toegepaste aantal |
Page.Redact() | Verwijder onmiddellijk de inhoud in de opgegeven regio’s, zonder een aparte toepasstap |
Page.RedactText() | Zoek en redigeer onmiddellijk elk voorkomen van een zoekterm of RegExp |
Page.MarkRedactText() | Zoek en markeer (zonder toe te passen) elke voorkoming van een zoekstring of RegExp |
Document.ApplyRedactions() | Pas elke /Redact markering toe over het hele document |
Document.Redact() / Document.RedactText() | Redigeer onmiddellijk regio’s op één pagina, of een zoekterm over elke pagina |
Document.MarkRedactText() | Markeer elke voorkoming van een zoekterm over elke pagina |