Jak zakrýt obsah PDF v TypeScript

Jak zakrýt obsah PDF v TypeScript

Tento průvodce ukazuje, jak cenzurovat obsah PDF pomocí Aspose.PDF FOSS pro TypeScript. Page.AddRedact() označí oblast; Page.ApplyRedactions() destruktivně přepíše obsahový stream, takže glyfy pod každou označenou oblastí zmizí. Neaplikované značky zůstávají jako běžné, kopírovatelné anotace. Vyžaduje Node.js 22 nebo novější.

Návod krok za krokem

Krok 1: Nainstalujte balíček

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

Ověřte instalaci importováním třídy Document v novém souboru TypeScript — tento řádek by měl být bez chyb, jakmile je balíček nainstalován:

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

Krok 2: Importujte požadované třídy

Import Document k otevření souboru; AddRedact() a ApplyRedactions() jsou volány přímo na instancích Page, které vrací:

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

Krok 3: Označit oblast k redakci

Page.AddRedact(opts) nakreslí RedactAnnotation přes rect. fill nastaví barvu namalovanou na oblast po aplikaci a overlayText (s align, fontSize, textColor) vytiskne náhradní štítek, například [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],
});

Krok 4: Použít redakce

Page.ApplyRedactions() destruktivně přepisuje obsahový proud — glyfy uvnitř každého RedactAnnotation označeného na stránce jsou navždy pryč a aplikované značky jsou odstraněny. Značky přidané po tomto volání zůstávají neaplikované: hodnota pod nimi se stále čte a je stále možné ji kopírovat:

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

Časté problémy a opravy

Redakční značka zobrazuje černý rámeček, ale podkladový text lze stále zkopírovat. Page.ApplyRedactions() nikdy nebyla volána (nebo byla volána před tím, než byla značka přidána). Označování pomocí AddRedact() samotná pouze nakreslí anotaci nad oblastí — obsah pod ní je zničen pouze jednou ApplyRedactions() běží.

ApplyRedactions() odstranil obsah, který značka rect nepochýlila. rect je přesně přepsaná oblast — text nebo obrázky, které se s ní překrývají jen částečně, mohou být na hranici stále částečně zničeny. Velikost značek udělte štědře kolem cílového obsahu.

Výsledky vyhledávání nelze předat přímo do Page.AddRedact(). Výsledek z Page.SearchAnnotationText() nese metadata anotace, nikoli geometrii stránky — není to stejný tvar jako rect an AddRedact() očekává značka. Page.MarkRedactText(find, opts) and Page.RedactText(find, opts) jsou vstupními body pro redakci vyhledáváním textu a oba jsou také k dispozici na Document úrovni k prohledání každé stránky jedním voláním.

Redakce přežije šifrování nečekaně. Redakce a šifrování jsou nezávislé operace — aplikujte redakce před uložením s encrypt volbami, pokud je cílem jak odstranit obsah, tak omezit přístup k tomu, co zůstane; aplikace v opačném pořadí neodstraní již zašifrované uložení.

Často kladené otázky

Jaký je rozdíl mezi označením a aplikací redakce?

AddRedact() pouze vytváří anotaci popisující, kde je redakce plánována — zakrytý obsah zůstává nedotčený a je stále vybratelný/kopírovatelný, dokud neproběhne ApplyRedactions() a destruktivně přepíše stránku.

Mohu provádět redakci vyhledáváním textu místo zadání obdélníku?

Ano — Page.MarkRedactText(find, opts) označí každou shodu find pro pozdější aplikaci a Page.RedactText(find, opts) označí a aplikuje v jednom volání. Oba také existují na Document pro procházení celého dokumentu.

Ovlivňuje ApplyRedactions() anotace kromě značek redakce?

Ne — přepisuje obsahový tok pod vlastními značkami RedactAnnotation; ostatní typy anotací na stránce nejsou tímto voláním ovlivněny.

Je redakce reverzibilní?

Ne — ApplyRedactions() je destruktivní. Uchovejte původní soubor, pokud bude potřeba později obnovit neodstraněný obsah.

Viz také:

 Čeština