ביקורי מפעילי תוכן
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 מאמת תחילה את הזרם המלא שעבר טרנספורמציה, ואז מחליף את תוכן העמוד במוטציית גרף אחת ומנקה את מטמוני רשימת התצוגה, הסריקה, הדיסק, מפענח הגופנים והתמונות הממוזערות