Redaction

Redaction

Trang này đề cập tới việc loại bỏ vĩnh viễn nội dung khỏi một trang PDF. Aspose.PDF FOSS cho TypeScript cung cấp hai quy trình che dấu: một quy trình hai giai đoạn đánh dấu-sau-đó-áp dụng mà bạn có thể xem lại trước khi cam kết, và một quy trình một lần gọi thực thi ngay. Cả hai đều có sẵn trên Page cho một trang duy nhất và trên Document cho toàn bộ tài liệu.


Đánh dấu và áp dụng che dấu

Page.AddRedact() đánh dấu một vùng hình chữ nhật bằng chú thích /Redact — nội dung bên dưới không bị thay đổi và vẫn có thể sao chép-chọn. Không có gì thực sự bị xóa cho đến khi Page.ApplyRedactions() chạy: nó ghi đè phá hủy luồng nội dung cho mọi đánh dấu /Redact trên trang, vẽ lớp phủ của mỗi đánh dấu (độ đổ màu /IC và /OverlayText), xóa các đánh dấu, và trả về số lượng che dấu đã áp dụng. Các đánh dấu được thêm sau khi ApplyRedactions() được gọi sẽ không được áp dụng.

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

Che dấu ngay tức thì

Page.Redact() và Page.RedactText() kết hợp việc đánh dấu và áp dụng thành một lời gọi duy nhất: chúng thực sự loại bỏ văn bản và hình ảnh được che phủ, loại bỏ các tài nguyên bị bỏ rơi do việc xóa, và vẽ một hộp đánh dấu không trong suốt lên mỗi vùng — mà không có bước ApplyRedactions() riêng và không có gì để xem lại trước. Page.Redact() nhận một danh sách rõ ràng các vùng Rect; Page.RedactText() tìm và che dấu mọi lần xuất hiện của một chuỗi tìm kiếm hoặc RegExp, theo cùng cách mà Page.SearchAnnotationText() tìm kiếm. Cả hai chấp nhận một đối tượng RedactOptions điều khiển dấu hiệu color, việc có scrubMetadata, và việc có keepAnnotations chồng lên một vùng đã được che.

Vì chúng loại bỏ nội dung ngay lập tức mà không có bước xem lại, hãy ưu tiên AddRedact() + ApplyRedactions() khi một đánh dấu cần được kiểm tra trước khi cam kết, và Redact() / RedactText() khi các vùng hoặc cụm từ tìm kiếm đã được xác định là an toàn để xóa.


Xóa thông tin nhạy cảm trong toàn bộ tài liệu

Hai quy trình làm việc giống nhau tồn tại trên Document, áp dụng cho mọi trang cùng một lúc: Document.MarkRedactText() đánh dấu mọi lần xuất hiện của một từ khóa tìm kiếm trên tất cả các trang, Document.ApplyRedactions() áp dụng mọi đánh dấu trong tài liệu, và Document.Redact() / Document.RedactText() xóa bỏ các vùng trên một trang duy nhất hoặc từ khóa tìm kiếm toàn tài liệu ngay lập tức, phản chiếu các tương đương Page của chúng.


Mẹo và Thực hành Tốt nhất

  • Sử dụng AddRedact() + ApplyRedactions() khi một việc xóa cần được xem xét trước khi có hiệu lực; sử dụng Redact() / RedactText() khi các vùng đã được xác nhận an toàn để loại bỏ ngay.
  • Thêm mọi dấu AddRedact() cho một trang trước khi gọi ApplyRedactions() — các dấu được thêm sau đó sẽ không được bao gồm trong lần gọi đó và sẽ không được áp dụng.
  • Chuyển scrubMetadata: true trong RedactOptions / ApplyRedactionsOptions khi nội dung đã xóa có thể cũng xuất hiện trong siêu dữ liệu tài liệu (/Info hoặc XMP).
  • RedactText() và MarkRedactText() tìm kiếm theo cùng quy tắc khớp như SearchAnnotationText() / Search, vì vậy một chuỗi tìm kiếm không khớp ở đó cũng sẽ không thực hiện xóa.

Các vấn đề phổ biến

Vấn đềNguyên nhânCách khắc phục
Dấu xóa thông tin không có tác dụngPage.ApplyRedactions() chưa bao giờ được gọiGọi Page.AddRedact() cho mọi dấu trước, sau đó gọi Page.ApplyRedactions() một lần
Nội dung vẫn có thể khôi phục được sau khi đánh dấuDấu đã sử dụng AddRedact() (chỉ đánh dấu) mà không có lời gọi ApplyRedactions() tiếp theoGọi ApplyRedactions(), hoặc sử dụng Redact() / RedactText() để loại bỏ trong một lần gọi
Văn bản đã được che lại xuất hiện lại trong siêu dữ liệu tài liệu được trích xuấtscrubMetadata chưa được đặtTruyền { scrubMetadata: true } trong đối tượng tùy chọn
ApplyRedactions() trả về 0Không có dấu /Redact nào tồn tại trên trang khi nó được gọiXác nhận AddRedact() (hoặc MarkRedactText()) đã chạy trước và nhắm vào cùng một trang

FAQ

Sự khác nhau giữa AddRedact và Redact là gì?

AddRedact() chỉ đánh dấu một vùng — nội dung vẫn còn hiện hữu và có thể sao chép cho đến khi ApplyRedactions() được thực thi. Redact() xóa nội dung trong cùng một lời gọi, mà không cần bước áp dụng riêng.

Tôi có thể xóa thông tin bằng cách tìm kiếm văn bản thay vì chỉ định tọa độ không?

Có. RedactText() tìm và tự động xóa mọi lần xuất hiện của chuỗi tìm kiếm hoặc RegExp; MarkRedactText() làm tương tự nhưng chỉ đánh dấu các kết quả, để lại cho lần gọi ApplyRedactions() sau.

Quá trình xóa thông tin có hoạt động trên toàn bộ tài liệu hay chỉ trên một trang một lúc?

Cả hai. Page.Redact() / Page.ApplyRedactions() và các thành phần liên quan hoạt động trên một trang; Document.Redact() / Document.ApplyRedactions() và các thành phần liên quan hoạt động trên mọi trang.

Các chú thích gần vùng đã xóa thông tin có bị loại bỏ không?

Chỉ khi bạn để chúng tự do. Truyền keepAnnotations: true trong đối tượng options để giữ lại các chú thích chồng lên vùng đã bị gỡ bỏ thay vì xóa chúng cùng với vùng đó.


API Reference Tóm tắt

Lớp/Phương thứcMô tả
Page.AddRedact()Đánh dấu một vùng hình chữ nhật bằng chú thích /Redact, chưa xóa nội dung
Page.ApplyRedactions()Xóa hoàn toàn mọi vùng đã đánh dấu trên trang và trả về số lượng đã áp dụng
Page.Redact()Loại bỏ nội dung trong các vùng đã chỉ định ngay, không có bước áp dụng riêng
Page.RedactText()Tìm và che dấu ngay mọi lần xuất hiện của chuỗi tìm kiếm hoặc RegExp
Page.MarkRedactText()Tìm và đánh dấu (không áp dụng) mọi lần xuất hiện của chuỗi tìm kiếm hoặc RegExp
Document.ApplyRedactions()Áp dụng mọi dấu /Redact trên toàn bộ tài liệu
Document.Redact() / Document.RedactText()Ngay lập tức xóa thông tin các khu vực trên một trang, hoặc một cụm từ tìm kiếm trên mọi trang
Document.MarkRedactText()Đánh dấu mọi lần xuất hiện của một cụm từ tìm kiếm trên mọi trang

Xem thêm

 Tiếng Việt