Відвідувачі операторів вмісту

HotPDF надає кожну операцію в декодованому потоці вмісту через інтерфейс відвідувача з підрахунком посилань і зворотний виклик події Delphi, без необхідності викликаючому коду писати токенізатор PDF

Інспекція та вимірювання

THPDFContentOperatorEventData ідентифікує фази початку потоку, оператора та кінця потоку та повідомляє індекс операції, ім'я оператора, кількість операндів, діапазон байтів і детермінований стан до виконання поточного оператора джерела

Стан містить глибини стану графіки, текстового об'єкта, позначеного вмісту та розділу сумісності, тоді як THPDFContentOperatorView надає байти операції або операнда в режимі лише читання на вимогу без копіювання повного потоку джерела

Перетворення або відхилення

Зворотні виклики обирають coaKeep, coaDelete, coaReplace, coaStop або coaReject

Дії видалення та заміни стають відсортованими неперекривними правками AST; відхилення не публікує жодного виводу, а coaStop успішно завершується після поточного оператора

Знімки стану слідують за оригінальним обходом джерела навіть коли операцію замінено, що робить повторну інспекцію детермінованою

Бюджети та перевірка

THPDFContentOperatorVisitOptions.Default налаштовує MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes і ValidateOutput

Скасування перевіряється під час обходу, а перетворений вивід повторно аналізується за тими самими межами лексем, глибини та операторів, перш ніж його можна повернути або записати в завантажену сторінку

Пошкоджене введення, недійсний вивід заміни, винятки зворотних викликів, порушення меж і явне відхилення розрізняються через THPDFContentOperatorVisitStatus і діагностику

Реєстрація на завантаженій сторінці

PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
  CancellationToken, Statistics) then
  UseStatistics(Statistics);

Інтерфейсний відвідувач виконується перед зворотним викликом події, коли призначено обидва, і обидва виконуються синхронно на викликальному потоці

З ApplyChanges=True HotPDF спочатку перевіряє повний перетворений потік, потім замінює вміст сторінки однією зміною графа та робить недійсними скомпільовані кеші списку відмальовування, растру, диска, декодера шрифтів і мініатюр

Пов'язані API