Wie man PDF-Inhalte in TypeScript redigiert

Wie man PDF-Inhalte in TypeScript redigiert

Dieses Handbuch zeigt, wie man PDF-Inhalte mit Aspose.PDF FOSS für TypeScript schwärzt. Page.AddRedact() markiert einen Bereich; Page.ApplyRedactions() überschreibt den Inhaltsstream destruktiv, sodass die Glyphen unter jedem markierten Bereich verschwinden. Nicht angewendete Markierungen bleiben als gewöhnliche, kopierbare Anmerkungen erhalten. Es erfordert Node.js 22 oder höher.

Schritt-für-Schritt-Anleitung

Schritt 1: Paket installieren

git clone https://github.com/aspose-pdf-foss/Aspose.PDF-FOSS-for-TypeScript.git
cd Aspose.PDF-FOSS-for-TypeScript
npm install
npm run build

Überprüfen Sie die Installation, indem Sie die Document-Klasse in einer neuen TypeScript-Datei importieren — diese Zeile sollte ohne Fehler aufgelöst werden, sobald das Paket installiert ist:

import { Document } from '@asposefoss/pdf';

Schritt 2: Erforderliche Klassen importieren

Importieren Sie Document, um die Datei zu öffnen; AddRedact() und ApplyRedactions() werden direkt auf den von ihr zurückgegebenen Page-Instanzen aufgerufen:

import { Document } from '@asposefoss/pdf';

Schritt 3: Einen Bereich zur Schwärzung markieren

Page.AddRedact(opts) zeichnet ein RedactAnnotation über rect. fill legt die Farbe fest, die nach dem Anwenden über den Bereich gemalt wird, und overlayText (mit align, fontSize, textColor) gibt ein Ersatzetikett wie [REDACTED] aus:

const doc = Document.OpenFile('memo.pdf');
const page = doc.Pages[0];

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

Schritt 4: Schwärzungen anwenden

Page.ApplyRedactions() überschreibt den Inhalts-Stream destruktiv — die Glyphen innerhalb jedes auf der Seite markierten RedactAnnotation sind für immer verschwunden, und die angewendeten Markierungen werden entfernt. Nach diesem Aufruf hinzugefügte Markierungen bleiben nicht angewendet: der darunterliegende Wert ist weiterhin lesbar und kann weiterhin kopiert werden:

page.ApplyRedactions();
doc.WriteTo('memo-redacted.pdf');

Häufige Probleme und Lösungen

Eine Redaktionsmarkierung zeigt das schwarze Kästchen, aber der zugrunde liegende Text kann weiterhin kopiert werden. Page.ApplyRedactions() wurde nie aufgerufen (oder wurde aufgerufen, bevor die Markierung hinzugefügt wurde). Markierung mit AddRedact() allein zeichnet nur eine Anmerkung über den Bereich — der darunter liegende Inhalt wird nur einmal zerstört ApplyRedactions() läuft.

ApplyRedactions() entfernter Inhalt der Markierung rect nicht abdeckte. rect ist der exakt neu geschriebene Bereich — Text oder Bilder, die nur teilweise überlappen, können an der Grenze weiterhin teilweise zerstört werden. Markierungen großzügig um den Zielinhalt herum.

Suchergebnisse können nicht direkt an Page.AddRedact(). Ein Treffer von Page.SearchAnnotationText() trägt Anmerkungs-Metadaten, nicht Seitengeometrie — es hat nicht dieselbe Form wie das rect an AddRedact() Markierung erwartet. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) sind die Einstiegspunkte für das Redigieren per Textsuche, und beide sind auch auf der Document Ebene verfügbar, um jede Seite in einem Aufruf zu erfassen.

Eine Redaktion übersteht Verschlüsselung unerwartet. Redaktion und Verschlüsselung sind unabhängige Vorgänge — führen Sie Redaktionen vor dem Speichern mit encrypt Optionen aus, wenn das Ziel sowohl das Entfernen des Inhalts als auch die Beschränkung des Zugriffs auf das Übrigbleibende ist; die umgekehrte Reihenfolge hebt ein bereits verschlüsseltes Speichern nicht auf.

Häufig gestellte Fragen

Was ist der Unterschied zwischen dem Markieren und dem Anwenden einer Redaktion?

AddRedact() erstellt nur eine Annotation, die beschreibt, wo eine Redaktion geplant ist — der abgedeckte Inhalt bleibt unverändert und ist weiterhin auswähl- und kopierbar, bis ApplyRedactions() ausgeführt wird und die Seite destruktiv neu schreibt.

Kann ich redigieren, indem ich nach Text suche, anstatt ein Rechteck anzugeben?

Ja — Page.MarkRedactText(find, opts) markiert jedes Vorkommen von find für die spätere Anwendung, und Page.RedactText(find, opts) markiert und wendet in einem Aufruf an. Beide existieren auch auf Document, um das gesamte Dokument zu durchsuchen.

Beeinflusst ApplyRedactions() Annotationen außer den Redaktionsmarkierungen?

Nein — es überschreibt den Inhaltsstrom unterhalb seiner eigenen RedactAnnotation-Markierungen; andere Anmerkungstypen auf der Seite werden von diesem Aufruf nicht berührt.

Ist eine Redaktion umkehrbar?

Nein — ApplyRedactions() ist destruktiv. Bewahren Sie die Originaldatei auf, falls der nicht redigierte Inhalt später wiederherstellbar sein muss.

Siehe auch

 Deutsch