Redaction

Redaction

Tato stránka popisuje trvalé odstranění obsahu z PDF stránky. Aspose.PDF FOSS pro TypeScript nabízí dva workflowy redakce: dvoufázový postup označ-pak-aplikuj, který si můžete před potvrzením prohlédnout, a jednorázový okamžitý postup. Oba jsou k dispozici na Page pro jednotlivou stránku a na Document pro celý dokument.


Označování a aplikace redakcí

Page.AddRedact() označuje obdélníkovou oblast pomocí anotace /Redact — obsah pod ní zůstává nedotčený a stále jej lze kopírovat. Nic se ve skutečnosti neodstraní, dokud není spuštěno Page.ApplyRedactions(): destruktivně přepíše obsahový stream pro každé označení /Redact na stránce, vykreslí překryv každého označení (její /IC výplň a /OverlayText), odstraní označení a vrátí počet aplikovaných redakcí. Označení přidaná po zavolání ApplyRedactions() zůstanou neaplikována.

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

Okamžitá redakce

Page.Redact() a Page.RedactText() kombinují označování a aplikaci do jediného volání: skutečně odstraňují zakrytý text a obrázky, ořezávají zdroje, které po odstranění zůstávají osiřelé, a malují neprůhledný označovací rámeček přes každou oblast — bez samostatného kroku ApplyRedactions() a bez předchozího přezkoumání. Page.Redact() přijímá explicitní seznam Rect oblastí; Page.RedactText() najde a rediguje každý výskyt vyhledávacího řetězce nebo RegExp, stejným způsobem, jakým vyhledává Page.SearchAnnotationText(). Oba přijímají objekt RedactOptions, který řídí označovací color, zda scrubMetadata, a zda keepAnnotations, které se překrývají s redigovanou oblastí.

Protože odstraňují obsah okamžitě bez kroku revize, upřednostněte AddRedact() + ApplyRedactions(), když by mělo být označení před potvrzením kontrolovatelné, a Redact() / RedactText(), když jsou oblasti nebo vyhledávací termíny již známy jako bezpečné k odstranění.


Redigování celého dokumentu

Stejné dva pracovní postupy existují na Document, aplikované na všechny stránky najednou: Document.MarkRedactText() označuje každý výskyt hledaného výrazu ve všech stránkách, Document.ApplyRedactions() použije všechna označení v dokumentu, a Document.Redact() / Document.RedactText() redigují regiony jedné stránky nebo hledaný výraz v celém dokumentu okamžitě, což odráží jejich ekvivalenty Page.


Tipy a osvědčené postupy

  • Použijte AddRedact() + ApplyRedactions(), pokud má být redakce přezkoumatelná před jejím provedením; použijte Redact() / RedactText(), pokud jsou regiony již potvrzeny jako bezpečné k okamžitému odstranění.
  • Přidejte všechna označení AddRedact() pro stránku před voláním ApplyRedactions() — označení přidaná později nejsou zahrnuta do tohoto volání a zůstávají neaplikována.
  • Předávejte scrubMetadata: true v RedactOptions / ApplyRedactionsOptions, když může být redigovaný obsah také obsažen v metadatech dokumentu (/Info nebo XMP).
  • RedactText() a MarkRedactText() vyhledávají podle stejných pravidel shody jako SearchAnnotationText() / Search, takže vyhledávací řetězec, který tam neodpovídá, také selže při redakci.

Časté problémy

ProblémPříčinaOprava
Redakční značka nemá žádný účinekPage.ApplyRedactions() nebyl nikdy zavolánPro každou značku nejprve zavolejte Page.AddRedact(), poté jednou Page.ApplyRedactions()
Obsah je i po značce stále obnovitelnýZnačka použila AddRedact() (pouze značka) bez následujícího volání ApplyRedactions()Zavolejte ApplyRedactions() nebo použijte Redact() / RedactText() pro jednorázové odstranění
Cenzurovaný text se znovu objeví v extrahovaných metadatech dokumentuscrubMetadata nebyl nastavenPředávejte { scrubMetadata: true } v objektu možností
ApplyRedactions() vrací 0Na stránce neexistovaly žádné značky /Redact v okamžiku voláníPotvrďte, že AddRedact() (nebo MarkRedactText()) běžel jako první a cílil na stejnou stránku

FAQ

Jaký je rozdíl mezi AddRedact a Redact?

AddRedact() pouze označuje oblast — obsah je stále přítomen a lze jej kopírovat, dokud neproběhne ApplyRedactions(). Redact() odstraňuje obsah ve stejném volání, bez samostatného kroku aplikace.

Mohu provést redact pomocí vyhledávání textu místo zadávání souřadnic?

Ano. RedactText() najde a okamžitě redactuje každou výskyt hledaného řetězce nebo RegExp; MarkRedactText() dělá to samé, ale pouze označí shody a ponechá je pro pozdější volání ApplyRedactions().

Funguje redakce na celém dokumentu, nebo jen po jedné stránce najednou?

Obojí. Page.Redact() / Page.ApplyRedactions() a jejich sourozenci pracují na jedné stránce; Document.Redact() / Document.ApplyRedactions() a jejich sourozenci pracují napříč všemi stránkami.

Jsou anotace v blízkosti redigované oblasti také odstraněny?

Jen pokud je necháte být. Předávejte keepAnnotations: true v objektu options, aby se zachovaly anotace, které se překrývají s cenzurovanou oblastí, místo toho, aby byly odstraněny spolu s ní.


API Reference Shrnutí

Třída/MetodaPopis:
Page.AddRedact()Označte obdélníkovou oblast pomocí anotace /Redact, aniž byste zatím odstranili obsah
Page.ApplyRedactions()Destruktivně odstraňte každou označenou oblast na stránce a vraťte počet aplikovaných
Page.Redact()Okamžitě odstraňte obsah v daných oblastech, bez samostatného kroku aplikace
Page.RedactText()Najděte a okamžitě zakryjte každý výskyt vyhledávacího řetězce nebo RegExp
Page.MarkRedactText()Najděte a označte (bez aplikace) každý výskyt vyhledávacího řetězce nebo RegExp
Document.ApplyRedactions()Aplikujte každé /Redact označení v celém dokumentu
Document.Redact() / Document.RedactText()Okamžitě zakryjte oblasti na jedné stránce nebo hledaný termín na všech stránkách
Document.MarkRedactText()Označte každý výskyt hledaného termínu na všech stránkách

Viz také:

 Čeština