Запись THPDFContentOperatorEventData
Доставляет listener-у один визит оператора content stream с позицией, состоянием, просмотром операндов и действием к применению
Объявление
THPDFContentOperatorEventData= record
Phase: THPDFContentOperatorVisitPhase;
OperationIndex: Integer;
NodeIndex: Integer;
OperatorName: AnsiString;
OperandCount: Integer;
StartOfs: Integer;
EndOfs: Integer;
State: THPDFContentOperatorState;
View: THPDFContentOperatorView;
Action: THPDFContentOperatorAction;
Replacement: SysUtils.TBytes;
end;
Модуль
HPDFContentStream
Поля
| Поле | Назначение |
|---|---|
Phase | Стадия визита: covpBeginStream, covpOperator или covpEndStream |
OperationIndex | Порядковый номер оператора в stream с отсчётом от нуля |
NodeIndex | Индекс узла операции в синтаксическом дереве |
OperatorName | Текст оператора, например Tj или cm |
OperandCount | Число операндов, принадлежащих узлу операции |
StartOfs | Смещение в байтах, где операция начинается в исходном stream |
EndOfs | Смещение в байтах сразу за операцией |
State | Глубины вложенности графического состояния, текстового объекта, marked content и compatibility в точке визита |
View | THPDFContentOperatorView, дающий доступ на чтение к байтам операции и операндов |
Action | Решение listener-а: coaKeep, coaDelete, coaReplace, coaStop или coaReject |
Replacement | Новые байты, подставляемые вместо операции, когда Action равен coaReplace |
Примечания по использованию
- Получается в
IHPDFContentOperatorVisitor.VisitContentOperatorи в обработчикахTHPDFContentOperatorEvent - Установите
ActionвcoaDeleteилиcoaReplace(с байтамиReplacement), чтобы переписать stream,coaStop, чтобы закончить проход досрочно, илиcoaReject, чтобы прервать со статусом ошибки Viewвалиден только во время callback; скопируйте нужные байты операндов до возврата