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