Hoe PDF-inhoud te redigeren in TypeScript

Hoe PDF-inhoud te redigeren in TypeScript

Deze gids laat zien hoe je PDF-inhoud kunt redigeren met Aspose.PDF FOSS voor TypeScript. Page.AddRedact() markeert een gebied; Page.ApplyRedactions() herschrijft destructief de content stream zodat de glyphs onder elk gemarkeerd gebied verdwijnen. Niet toegepaste markeringen blijven gewone, kopieerbare annotaties. Het vereist Node.js 22 of hoger.

Stap-voor-stap gids

Stap 1: Installeer het pakket

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

Verifieer de installatie door de Document klasse te importeren in een nieuw TypeScript bestand — deze regel moet zonder fout worden opgelost zodra het pakket geïnstalleerd is:

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

Stap 2: Importeer vereiste klassen

Importeer Document om het bestand te openen; AddRedact() en ApplyRedactions() worden rechtstreeks aangeroepen op de Page-instanties die het retourneert:

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

Stap 3: Markeer een gebied voor redactie

Page.AddRedact(opts) tekent een RedactAnnotation over rect. fill stelt de kleur in die over het gebied wordt geschilderd zodra toegepast, en overlayText (met align, fontSize, textColor) drukt een vervangend label af, zoals [REDACTED]:

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],
});

Stap 4: Pas redacties toe

Page.ApplyRedactions() herschrijft de inhoudsstroom destructief — de glyphs binnen elke RedactAnnotation die op de pagina gemarkeerd is, verdwijnen voorgoed, en de toegepaste markeringen worden verwijderd. Markeringen die na deze aanroep worden toegevoegd, blijven onverwerkt: de waarde eronder kan nog steeds gelezen en gekopieerd worden:

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

Veelvoorkomende problemen en oplossingen

Een redactie-markering toont het zwarte vak, maar de onderliggende tekst kan nog steeds worden gekopieerd. Page.ApplyRedactions() werd nooit aangeroepen (of werd aangeroepen voordat de markering werd toegevoegd). Markeren met AddRedact() alleen tekent een annotatie over het gebied — de inhoud eronder wordt slechts één keer vernietigd ApplyRedactions() wordt uitgevoerd.

ApplyRedactions() verwijderde inhoud van de markering rect dekte niet. rect is de exacte regio herschreven — tekst of afbeeldingen die er slechts gedeeltelijk overlappen, kunnen nog steeds gedeeltelijk worden vernietigd aan de rand. Maak markeringen ruim rond de doelinhoud.

Zoekresultaten kunnen niet rechtstreeks worden doorgegeven aan Page.AddRedact(). Een hit van Page.SearchAnnotationText() bevat annotatiemetadata, niet paginageometrie — het heeft niet dezelfde vorm als de rect an AddRedact() mark verwacht. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) zijn de redact-by-text-search-invoerpunt(en), en beide zijn ook beschikbaar op het Document niveau om elke pagina in één oproep te doorlopen.

Een redaction overleeft encryptie onverwacht. Redaction en encryptie zijn onafhankelijke bewerkingen — pas redactions toe vóór het opslaan met encrypt opties als het doel is zowel de inhoud te verwijderen als de toegang tot wat overblijft te beperken; toepassen in de omgekeerde volgorde maakt een reeds versleutelde opslag niet ongedaan.

Veelgestelde vragen

Wat is het verschil tussen het markeren en het toepassen van een redactie?

AddRedact() maakt alleen een annotatie aan die beschrijft waar een redactie gepland is — de gedekte inhoud blijft onaangeroerd en nog steeds selecteerbaar/kopiëerbaar totdat ApplyRedactions() wordt uitgevoerd en de pagina destructief herschrijft.

Kan ik redacties uitvoeren door naar tekst te zoeken in plaats van een rechthoek op te geven?

Ja — Page.MarkRedactText(find, opts) markeert elke overeenkomst van find voor latere toepassing, en Page.RedactText(find, opts) markeert en past toe in één oproep. Beide bestaan ook op Document om het hele document door te lopen.

Heeft ApplyRedactions() invloed op annotaties anders dan de redactie-markeringen?

Nee — het herschrijft de inhoudsstroom onder zijn eigen RedactAnnotation-markeringen; andere annotatietypen op de pagina worden door deze oproep niet aangeraakt.

Is een redactie omkeerbaar?

Nee — ApplyRedactions() is destructief. Bewaar het originele bestand als de niet-gereediteerde inhoud later moet kunnen worden hersteld.

Zie ook

 Nederlands