Redaction

Redaction

Diese Seite behandelt das dauerhafte Entfernen von Inhalten einer PDF-Seite. Aspose.PDF FOSS für TypeScript bietet zwei Redaktions-Workflows: einen zweiphasigen Markieren-dann-Anwenden-Ablauf, den Sie vor dem Festschreiben überprüfen können, und einen sofortigen Ein-Aufruf-Ablauf. Beide sind auf Page für eine einzelne Seite und auf Document für das gesamte Dokument verfügbar.


Markieren und Anwenden von Redaktionen

Page.AddRedact() markiert einen rechteckigen Bereich mit einer /Redact-Annotation — der darunterliegende Inhalt bleibt unverändert und weiterhin kopier- und auswählbar. Es wird nichts tatsächlich entfernt, bis Page.ApplyRedactions() ausgeführt wird: Es überschreibt destruktiv den Inhalts-Stream für jede /Redact-Markierung auf der Seite, malt die Überlagerung jeder Markierung (ihre /IC-Füllung und /OverlayText), entfernt die Markierungen und gibt die Anzahl der angewendeten Redaktionen zurück. Nach dem Aufruf von ApplyRedactions() hinzugefügte Markierungen bleiben unverarbeitet.

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);

Sofortige Redaktion

Page.Redact() und Page.RedactText() kombinieren Markieren und Anwenden in einem einzigen Aufruf: Sie entfernen tatsächlich den bedeckten Text und Bilder, bereinigen Ressourcen, die durch das Entfernen verwaist bleiben, und malen eine undurchsichtige Markierungsbox über jede Region — ohne einen separaten ApplyRedactions()-Schritt und ohne dass zunächst etwas zur Überprüfung bleibt. Page.Redact() nimmt eine explizite Liste von Rect-Regionen entgegen; Page.RedactText() findet und schwärzt jedes Vorkommen einer Suchzeichenkette oder RegExp, auf dieselbe Weise, wie Page.SearchAnnotationText() sucht. Beide akzeptieren ein RedactOptions-Objekt, das die Markierungs-color steuert, ob scrubMetadata durchgeführt werden soll und ob keepAnnotations überschneidende mit einer redigierten Region durchgeführt werden soll.

Da sie Inhalte sofort ohne Überprüfungsschritt entfernen, bevorzugen Sie AddRedact() + ApplyRedactions(), wenn eine Markierung vor dem Festschreiben einsehbar sein soll, und Redact() / RedactText(), wenn die Regionen oder Suchbegriffe bereits als sicher zum Entfernen gelten.


Ein ganzes Dokument redigieren

Die gleichen beiden Workflows existieren auf Document, wobei sie gleichzeitig auf jede Seite angewendet werden: Document.MarkRedactText() markiert jedes Vorkommen eines Suchbegriffs auf allen Seiten, Document.ApplyRedactions() wendet jede Markierung im Dokument an, und Document.Redact() / Document.RedactText() redigieren sofort die Regionen einer einzelnen Seite bzw. einen dokumentweiten Suchbegriff, wobei sie deren Page-Entsprechungen spiegeln.


Tipps und bewährte Verfahren

  • Verwenden Sie AddRedact() + ApplyRedactions(), wenn eine Redaktion überprüfbar sein soll, bevor sie wirksam wird; verwenden Sie Redact() / RedactText(), wenn die Regionen bereits als sicher zum sofortigen Entfernen bestätigt wurden.
  • Fügen Sie jede AddRedact()-Markierung für eine Seite hinzu, bevor Sie ApplyRedactions() aufrufen — nachträglich hinzugefügte Markierungen werden bei diesem Aufruf nicht berücksichtigt und bleiben unverwendet.
  • Übergeben Sie scrubMetadata: true in RedactOptions / ApplyRedactionsOptions, wenn der redigierte Inhalt auch in den Dokumentmetadaten (/Info oder XMP) vorhanden sein könnte.
  • RedactText() und MarkRedactText() suchen nach denselben Übereinstimmungsregeln wie SearchAnnotationText() / Search, sodass ein Suchbegriff, der dort nicht gefunden wird, ebenfalls nicht redigiert werden kann.

Häufige Probleme

ProblemUrsacheLösung
Redaktionsmarkierung hat keine WirkungPage.ApplyRedactions() wurde nie aufgerufenRufen Sie Page.AddRedact() zuerst für jede Markierung auf, dann Page.ApplyRedactions() einmal
Inhalt kann nach einer Markierung noch wiederhergestellt werdenDie Markierung verwendete AddRedact() (nur Markierung) ohne nachfolgenden Aufruf von ApplyRedactions()Rufen Sie ApplyRedactions() auf, oder verwenden Sie Redact() / RedactText() für eine einmalige Entfernung
Redigierter Text erscheint wieder in den extrahierten DokumentmetadatenscrubMetadata war nicht gesetztÜbergib { scrubMetadata: true } im Optionsobjekt
ApplyRedactions() gibt 0 zurückEs gab keine /Redact-Markierungen auf der Seite, als sie aufgerufen wurdeBestätigen Sie, dass AddRedact() (oder MarkRedactText()) zuerst ausgeführt wurde und dieselbe Seite anvisierte

FAQ

Was ist der Unterschied zwischen AddRedact und Redact?

AddRedact() markiert nur einen Bereich — der Inhalt ist weiterhin vorhanden und kopierbar, bis ApplyRedactions() ausgeführt wird. Redact() entfernt den Inhalt im selben Aufruf, ohne einen separaten Anwendungs-Schritt.

Kann ich redigieren, indem ich nach Text suche, anstatt Koordinaten anzugeben?

Ja. RedactText() findet und redigiert sofort jedes Vorkommen einer Suchzeichenkette oder RegExp; MarkRedactText() macht dasselbe, markiert jedoch nur die Treffer und lässt sie für einen späteren ApplyRedactions()-Aufruf.

Funktioniert die Redaktion über das gesamte Dokument hinweg oder nur eine Seite auf einmal?

Beides. Page.Redact() / Page.ApplyRedactions() und deren Geschwister arbeiten auf einer Seite; Document.Redact() / Document.ApplyRedactions() und deren Geschwister arbeiten über alle Seiten hinweg.

Werden Anmerkungen in der Nähe eines redigierten Bereichs ebenfalls entfernt?

Nur wenn du sie so lässt. Übergebe keepAnnotations: true im Optionsobjekt, um Anmerkungen, die sich mit einem redigierten Bereich überschneiden, zu erhalten, anstatt sie zusammen damit zu entfernen.


API Reference Zusammenfassung

Klasse/MethodeBeschreibung
Page.AddRedact()Markieren Sie einen rechteckigen Bereich mit einer /Redact-Annotation, ohne den Inhalt bereits zu entfernen
Page.ApplyRedactions()Entfernen Sie destruktiv jede markierte Region auf der Seite und geben Sie die angewendete Anzahl zurück
Page.Redact()Entfernen Sie sofort den Inhalt in den angegebenen Regionen, ohne einen separaten Anwendungsschritt
Page.RedactText()Suchen und sofort jedes Vorkommen einer Suchzeichenfolge oder RegExp zensieren
Page.MarkRedactText()Finde und markiere (ohne anzuwenden) jedes Vorkommen einer Suchzeichenkette oder RegExp
Document.ApplyRedactions()Wende jede /Redact-Markierung im gesamten Dokument an
Document.Redact() / Document.RedactText()Sofort Regionen auf einer Seite oder einen Suchbegriff über alle Seiten zensieren
Document.MarkRedactText()Markiere jedes Vorkommen eines Suchbegriffs auf jeder Seite

Siehe auch

 Deutsch