Redaction
Redaction
Ta strona opisuje trwałe usuwanie treści z strony PDF. Aspose.PDF FOSS dla TypeScript oferuje dwa przepływy redakcji: dwufazowy proces zaznacz-następnie-zastosuj, który możesz przejrzeć przed zatwierdzeniem, oraz jednorazowy natychmiastowy przepływ. Oba są dostępne w Page dla pojedynczej strony oraz w Document dla całego dokumentu.
Zaznaczanie i stosowanie redakcji
Page.AddRedact() zaznacza prostokątny obszar przy pomocy adnotacji /Redact — zawartość pod nią pozostaje nienaruszona i nadal możliwa do skopiowania. Nic nie jest faktycznie usuwane, dopóki nie uruchomi się Page.ApplyRedactions(): destrukcyjnie przepisuje strumień treści dla każdego zaznaczenia /Redact na stronie, maluje nakładkę każdego zaznaczenia (jego wypełnienie /IC i /OverlayText), usuwa zaznaczenia i zwraca liczbę zastosowanych redakcji. Zaznaczenia dodane po wywołaniu ApplyRedactions() pozostają nie zastosowane.
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);Redakcja natychmiastowa
Page.Redact() i Page.RedactText() łączą zaznaczanie i stosowanie w jednym wywołaniu: naprawdę usuwają zakryty tekst i obrazy, przycinają zasoby pozostawione osierocone po usunięciu i malują nieprzezroczyste pole znacznika nad każdym obszarem — bez oddzielnego kroku ApplyRedactions() i bez konieczności wstępnego przeglądu. Page.Redact() przyjmuje explicite listę obszarów Rect; Page.RedactText() znajduje i redaguje każde wystąpienie ciągu wyszukiwania lub RegExp, w taki sam sposób, w jaki wyszukuje Page.SearchAnnotationText(). Oba przyjmują obiekt RedactOptions sterujący color znacznika, określający, czy scrubMetadata, oraz czy keepAnnotations zachodzi na redagowany obszar.
Ponieważ usuwają treść od razu, bez kroku przeglądu, preferuj AddRedact() + ApplyRedactions(), gdy znacznik powinien być sprawdzany przed zatwierdzeniem, oraz Redact() / RedactText(), gdy obszary lub terminy wyszukiwania są już znane jako bezpieczne do usunięcia.
Redagowanie całego dokumentu
Te same dwa przepływy pracy istnieją w Document, obejmując jednocześnie wszystkie strony: Document.MarkRedactText() oznacza każde wystąpienie terminu wyszukiwania we wszystkich stronach, Document.ApplyRedactions() stosuje wszystkie oznaczenia w dokumencie, a Document.Redact() / Document.RedactText() natychmiast usuwają regiony jednej strony lub termin wyszukiwania obejmujący cały dokument, odzwierciedlając ich odpowiedniki Page.
Wskazówki i najlepsze praktyki
- Użyj
AddRedact()+ApplyRedactions(), gdy redakcja powinna być możliwa do przeglądu przed jej zastosowaniem; użyjRedact()/RedactText(), gdy regiony są już potwierdzone jako bezpieczne do natychmiastowego usunięcia. - Dodaj wszystkie znaczniki
AddRedact()dla strony przed wywołaniemApplyRedactions()— znaczniki dodane później nie są uwzględniane w tym wywołaniu i pozostają nie zastosowane. - Przekaż
scrubMetadata: truewRedactOptions/ApplyRedactionsOptions, gdy zredagowana treść może również występować w metadanych dokumentu (/Infolub XMP). RedactText()iMarkRedactText()wyszukują według tych samych reguł dopasowania coSearchAnnotationText()/Search, więc ciąg wyszukiwania, który nie zostanie tam dopasowany, również nie zostanie zredagowany.
Typowe problemy
| Problem | Przyczyna | Naprawa |
|---|---|---|
| Znacznik redakcji nie ma efektu | Page.ApplyRedactions() nigdy nie został wywołany | Wywołaj Page.AddRedact() dla każdego znacznika najpierw, a następnie Page.ApplyRedactions() raz |
| Treść nadal możliwa do odzyskania po znaczniku | Znacznik użył AddRedact() (tylko znacznik) bez następującego wywołania ApplyRedactions() | Wywołaj ApplyRedactions(), lub użyj Redact() / RedactText() do jednorazowego usunięcia |
| Zredagowany tekst pojawia się ponownie w wyodrębnionych metadanych dokumentu | scrubMetadata nie zostało ustawione | Przekaż { scrubMetadata: true } w obiekcie opcji |
ApplyRedactions() zwraca 0 | Na stronie nie istniały żadne oznaczenia /Redact, gdy została wywołana | Potwierdź, że AddRedact() (lub MarkRedactText()) uruchomił się jako pierwszy i skierował się do tej samej strony |
FAQ
Jaka jest różnica między AddRedact a Redact?
AddRedact() tylko oznacza obszar — treść nadal jest obecna i możliwa do skopiowania, dopóki nie zostanie uruchomiony ApplyRedactions(). Redact() usuwa treść w tym samym wywołaniu, bez oddzielnego kroku zastosowania.
Czy mogę wykonać redakcję, wyszukując tekst zamiast określania współrzędnych?
Tak. RedactText() znajduje i od razu redaguje każde wystąpienie ciągu wyszukiwania lub RegExp; MarkRedactText() robi to samo, ale tylko oznacza dopasowania, pozostawiając je na późniejsze wywołanie ApplyRedactions().
Czy redakcja działa na całym dokumencie, czy tylko na jednej stronie naraz?
Oba. Page.Redact() / Page.ApplyRedactions() i ich odpowiedniki działają na jednej stronie; Document.Redact() / Document.ApplyRedactions() i ich odpowiedniki działają na wszystkich stronach.
Czy adnotacje znajdujące się w pobliżu zredagowanego obszaru są również usuwane?
Tylko jeśli pozwolisz im być. Przekaż keepAnnotations: true w obiekcie opcji, aby zachować adnotacje nakładające się na zredagowany obszar zamiast usuwać je razem z nim.
API Reference Podsumowanie
| Klasa/Metoda | Opis |
|---|---|
Page.AddRedact() | Zaznacz prostokątny obszar za pomocą adnotacji /Redact, nie usuwając jeszcze treści |
Page.ApplyRedactions() | Trwale usuń każdy zaznaczony obszar na stronie i zwróć liczbę zastosowaną |
Page.Redact() | Natychmiast usuń zawartość w podanych obszarach, bez osobnego kroku zastosowania |
Page.RedactText() | Znajdź i natychmiast zamaskuj każde wystąpienie ciągu wyszukiwania lub RegExp |
Page.MarkRedactText() | Znajdź i zaznacz (bez zastosowania) każde wystąpienie ciągu wyszukiwania lub RegExp |
Document.ApplyRedactions() | Zastosuj każdy znacznik /Redact w całym dokumencie |
Document.Redact() / Document.RedactText() | Natychmiast ocenzuruj regiony na jednej stronie lub termin wyszukiwania na każdej stronie |
Document.MarkRedactText() | Zaznacz każde wystąpienie terminu wyszukiwania na każdej stronie |