Redaction

Redaction

Ця сторінка охоплює постійне видалення вмісту зі сторінки PDF. Aspose.PDF FOSS для TypeScript пропонує два робочі процеси редагування: двофазовий потік «позначити-потім-застосувати», який ви переглядаєте перед застосуванням, та однокроковий негайний потік. Обидва доступні в Page для окремої сторінки та в Document для всього документа.


Позначення та застосування редагувань

Page.AddRedact() позначає прямокутну область за допомогою анотації /Redact — вміст під нею лишається незмінним і все ще можна копіювати. Нічого не видаляється фактично, доки не запуститься Page.ApplyRedactions(): воно деструктивно переписує потік вмісту для кожної позначки /Redact на сторінці, малює накладку кожної позначки (її /IC заливка та /OverlayText), видаляє позначки і повертає кількість застосованих редагувань. Позначки, додані після виклику ApplyRedactions(), залишаються незастосованими.

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

Негайне редагування

Page.Redact() і Page.RedactText() об’єднують позначення та застосування в один виклик: вони справді видаляють прихований текст і зображення, обрізають ресурси, що залишаються після видалення, та малюють непрозору коробку-маркер над кожною областю — без окремого кроку ApplyRedactions() і без попереднього перегляду. Page.Redact() приймає явний список Rect областей; Page.RedactText() знаходить і редагує кожен випадок рядка пошуку або RegExp, так само, як здійснює пошук Page.SearchAnnotationText(). Обидва приймають об’єкт RedactOptions, що керує маркером color, чи scrubMetadata, та чи keepAnnotations, що перекривають редаговану область.

Оскільки вони видаляють вміст одразу без кроку перегляду, віддавайте перевагу AddRedact() + ApplyRedactions(), коли позначка повинна бути перевіряна перед застосуванням, та Redact() / RedactText(), коли області або пошукові терміни вже відомо безпечні для видалення.


Чорнування цілого документа

Ті ж два робочих процеси існують у Document, охоплюючи всі сторінки одночасно: Document.MarkRedactText() позначає кожен випадок пошукового терміну на всіх сторінках, Document.ApplyRedactions() застосовує всі позначки в документі, а Document.Redact() / Document.RedactText() миттєво чорнують області однієї сторінки або пошуковий термін у всьому документі, повторюючи їхні еквіваленти Page.


Поради та кращі практики

  • Використовуйте AddRedact() + ApplyRedactions(), коли чорнування має бути перевіреним перед його застосуванням; використовуйте Redact() / RedactText(), коли області вже підтверджено безпечними для негайного видалення.
  • Додайте всі позначки AddRedact() для сторінки перед викликом ApplyRedactions() — позначки, додані пізніше, не включаються в цей виклик і залишаються незастосованими.
  • Передайте scrubMetadata: true у RedactOptions / ApplyRedactionsOptions, коли чорнований вміст може також міститися у метаданих документа (/Info або XMP).
  • RedactText() та MarkRedactText() здійснюють пошук за тими ж правилами збігу, що й SearchAnnotationText() / Search, тому рядок пошуку, який не збігається там, також не буде чорнувати.

Поширені проблеми

ПроблемаПричинаВиправлення
Позначка редагування не має ефектуPage.ApplyRedactions() ніколи не був викликанийВикличте Page.AddRedact() для кожної позначки спочатку, потім Page.ApplyRedactions() один раз
Вміст все ще можна відновити після позначкиПозначка використала AddRedact() (лише позначка) без наступного виклику ApplyRedactions()Викличте ApplyRedactions(), або використайте Redact() / RedactText() для одноразового видалення
Редагований текст з’являється знову в метаданих витягнутого документаscrubMetadata не встановленоПередайте { scrubMetadata: true } у об’єкт options
ApplyRedactions() повертає 0На сторінці не існувало жодних /Redact позначок під час викликуПереконайтеся, що AddRedact() (або MarkRedactText()) виконалися першими і спрямовані на одну й ту ж сторінку

FAQ

Яка різниця між AddRedact та Redact?

AddRedact() лише позначає область — вміст залишається присутнім і його можна копіювати, доки не спрацює ApplyRedactions(). Redact() видаляє вміст у тому ж виклику, без окремого кроку застосування.

Чи можу я здійснювати зачеркування, шукаючи текст, замість вказування координат?

Так. RedactText() знаходить і одразу зачерковує кожен випадок рядка пошуку або RegExp; MarkRedactText() робить те ж саме, але лише позначає збіги, залишаючи їх для подальшого виклику ApplyRedactions().

Чи працює зачеркування по всьому документу, чи лише по одній сторінці за раз?

Обидва. Page.Redact() / Page.ApplyRedactions() та їхні аналоги працюють на одній сторінці; Document.Redact() / Document.ApplyRedactions() та їхні аналоги працюють на всіх сторінках.

Чи видаляються анотації біля зачеркованої області теж?

Лише якщо ви їх залишите. Передайте keepAnnotations: true у об’єкт options, щоб зберегти анотації, що перекривають редаговану ділянку, замість того, щоб видаляти їх разом із нею.


API Reference Підсумок

Клас/МетодОпис
Page.AddRedact()Позначте прямокутну область за допомогою анотації /Redact, не видаляючи вмісту
Page.ApplyRedactions()Деструктивно видаліть усі позначені області на сторінці та поверніть кількість застосованих
Page.Redact()Одразу видаліть вміст у зазначених областях, без окремого кроку застосування
Page.RedactText()Знайдіть і одразу засекретіть кожен випадок пошукового рядка або RegExp
Page.MarkRedactText()Знайти та позначити (не застосовуючи) кожне входження рядка пошуку або RegExp
Document.ApplyRedactions()Застосувати кожну позначку /Redact у всьому документі
Document.Redact() / Document.RedactText()Одразу затирати ділянки на одній сторінці або пошуковий термін на всіх сторінках
Document.MarkRedactText()Позначити кожне входження пошукового терміну на всіх сторінках

Дивіться також

 Українська