THotPDF.ApplyLoadedRedactions

Применяет загруженные аннотации Redact ко всем категориям рисования, одновременно удаляя пересекающиеся байты текста

Синтаксис Delphi

function ApplyLoadedRedactions(
  const PageRange: AnsiString= ''): Integer;

Описание

Метод собирает прямоугольники аннотаций /Subtype /Redact на каждой выбранной странице, нормализует их координаты и консервативно объединяет пересекающиеся прямоугольники

Внешний прямоугольник страницы и объединённые прямоугольники redaction образуют even-odd путь отсечения вокруг всего исходного содержимого страницы. Поэтому отсечение затрагивает текст, контурные и заливочные пути, изображения, заливки Pattern, inline image и Form XObjects точно по границам прямоугольников, а не отбрасывает целую операцию рисования

Состояние графики с отсечением устанавливается перед первым content stream страницы и восстанавливается после последнего stream, сохраняя непрерывность состояния через массив /Contents. Непрозрачные чёрные накладки рисуются уже после этого восстановления

Пересекающие прямые строковые операнды и отдельные строковые элементы TJ заменяются пробелами в их исходных декодированных stream. Для пересечения используются четырёхугольники глифов, а при недоступной точной геометрии — консервативный fallback по координатам начала текста

Возвращаемое значение — число «погашенных» прямых строковых операндов и элементов TJ. Нулевой результат всё ещё может означать, что нетекстовая графика страницы была успешно отсечена

PageRange использует номера и диапазоны страниц с единицы. Пустое значение обрабатывает все страницы

См. также Review-First Redaction Detection, RedactLoadedRect и AddRedactAnnotation