Visitor Operator Konten
HotPDF mengekspos setiap operasi dalam stream konten terdekode melalui antarmuka visitor yang dihitung referensinya dan callback peristiwa Delphi tanpa mengharuskan pemanggil menulis tokenizer PDF
Periksa dan ukur
THPDFContentOperatorEventData mengidentifikasi fase begin-stream, operator, dan end-stream serta melaporkan indeks operasi, nama operator, jumlah operan, rentang byte, dan status deterministik sebelum operator sumber saat ini dieksekusi
Status berisi kedalaman status grafis, objek teks, konten bertanda, dan bagian kompatibilitas, sementara THPDFContentOperatorView menyediakan byte operasi atau operan read-only sesuai permintaan tanpa menyalin stream sumber lengkap
Transformasi atau penolakan
Callback memilih coaKeep, coaDelete, coaReplace, coaStop, atau coaReject
Aksi delete dan replace menjadi edit AST non-tumpang tindih terurut; penolakan tidak menerbitkan keluaran dan coaStop selesai dengan sukses setelah operator saat ini
Snapshot status mengikuti traversal sumber asli bahkan ketika operasi diganti, membuat pemeriksaan berulang deterministik
Anggaran dan validasi
THPDFContentOperatorVisitOptions.Default mengonfigurasi MaxSourceBytes, MaxOperators, MaxLexemes, MaxDepth, MaxReplacementBytes, dan ValidateOutput
Pembatalan diperiksa selama traversal, dan keluaran yang ditransformasi diurai lagi di bawah batas lexeme, kedalaman, dan operator yang sama sebelum dapat dikembalikan atau ditulis ke halaman yang dimuat
Input salah bentuk, keluaran pengganti tidak valid, pengecualian callback, kegagalan batas, dan penolakan eksplisit dibedakan oleh THPDFContentOperatorVisitStatus dan diagnostik
Pendaftaran halaman yang dimuat
PDF.ContentOperatorVisitor := Visitor;
PDF.OnContentOperator := HandleContentOperator;
Options := THPDFContentOperatorVisitOptions.Default;
if PDF.VisitLoadedPageContentOperators(0, True, Options,
CancellationToken, Statistics) then
UseStatistics(Statistics);
Visitor antarmuka berjalan sebelum callback peristiwa ketika keduanya ditetapkan, dan keduanya dieksekusi secara sinkron pada thread pemanggil
Dengan ApplyChanges=True, HotPDF memvalidasi stream yang ditransformasi lengkap terlebih dahulu, lalu mengganti konten halaman dalam satu mutasi graph dan membatalkan cache display-list, raster, disk, font-decoder, dan thumbnail yang dikompilasi