RedactRegion

Манипуляция страницами

Описание

Действительно удаляет текст, векторные контуры и графические объекты XObject изображений, область рисования которых пересекает прямоугольник, путем редактирования потока содержимого страницы, так что исходные глифы, векторы и байты изображений исчезают и не могут быть восстановлены; это принципиально отличается от MaskRect, который только рисует непрозрачный прямоугольник поверх содержимого (оригинальные байты остаются и могут быть извлечены)

Для каждого слоя содержимого метод анализирует поток, отслеживает матрицу CTM (с учетом cm/q/Q), идентифицирует инструкции, преобразованная ограничительная рамка которых пересекается с областью, и удаляет их; дополнительные типы поведения, управляемые Options: наложить блок черной заливки поверх области и выдать стандартную аннотацию /Subtype /Redact

Ограничения: отслеживание CTM является приблизительным для сдвинутых/повернутых преобразований (линейные масштабы и исходная матрица обрабатываются точно); ширина текста оценивается по количеству глифов и размеру шрифта, так как сам поток содержимого не содержит метрик; размещение XObject изображения приближенно оценивается как единичный квадрат, преобразованный матрицей CTM

Синтаксис

Delphi

Function TPDFlib.RedactRegion(Page: Integer; Left, Top, Width, Height: Double; Options: Integer): Integer;

Параметры

PageThe 1-based page number
Left, TopВерхний левый угол области в текущих единицах измерения (координаты от верхнего левого угла)
Width, HeightРазмер области в текущих единицах измерения
Options0 = удаление + черная заливка + аннотация Redact; 1 = только удаление; 2 = удаление + аннотация Redact (без заливки)

Возвращаемые значения

>= 0Количество диапазонов инструкций, удаленных во всех слоях содержимого (0 означает отсутствие пересечений)