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žijteRedact()/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ímApplyRedactions()— označení přidaná později nejsou zahrnuta do tohoto volání a zůstávají neaplikována. - Předávejte
scrubMetadata: truevRedactOptions/ApplyRedactionsOptions, když může být redigovaný obsah také obsažen v metadatech dokumentu (/Infonebo XMP). RedactText()aMarkRedactText()vyhledávají podle stejných pravidel shody jakoSearchAnnotationText()/Search, takže vyhledávací řetězec, který tam neodpovídá, také selže při redakci.
Časté problémy
| Problém | Příčina | Oprava |
|---|---|---|
| Redakční značka nemá žádný účinek | Page.ApplyRedactions() nebyl nikdy zavolán | Pro 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 dokumentu | scrubMetadata nebyl nastaven | Předávejte { scrubMetadata: true } v objektu možností |
ApplyRedactions() vrací 0 | Na 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/Metoda | Popis: |
|---|---|
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 |