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;
Параметры
| Page | The 1-based page number |
|---|---|
| Left, Top | Верхний левый угол области в текущих единицах измерения (координаты от верхнего левого угла) |
| Width, Height | Размер области в текущих единицах измерения |
| Options | 0 = удаление + черная заливка + аннотация Redact; 1 = только удаление; 2 = удаление + аннотация Redact (без заливки) |
Возвращаемые значения
| >= 0 | Количество диапазонов инструкций, удаленных во всех слоях содержимого (0 означает отсутствие пересечений) |
|---|