ביקורי מפעילי תוכן

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 קשורים