מנועי רינדור עמוד ניתנים לחיבור

HotPDF ‏יכול לנתב רינדור bitmap ‏של עמודים טעונים דרך מנוע שהוגדר על ידי היישום תוך שמירה על ה-renderer ‏הקיים כברירת המחדל ללא תצורה וכפול-back ‏אופציונלי

מנוע מקורי מובנה

PDF.UseNativeGDIRenderBackend;
Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);

THPDFNativeGDIRenderBackend חושף את ה-renderer ‏המקורי המבוסס של Windows GDI ‏דרך אותו חוזה backend ‏ציבורי שמשמש מימושים חיצוניים

היכולות שלו מצהירות על prbcNative, prbcDeterministic, prbcTransparency, prbcColourManagement ‏ו-prbcThreadSafe מבלי לטעון ל-prbcDeviceAcceleration

backend סריקה SIMD

var
  Backend: IHPDFPageRenderBackend;
begin
  Backend := THPDFSIMDScanlineRenderBackend.Create;
  PDF.PageRenderBackend := Backend;
  Bitmap := PDF.RenderLoadedPageToBitmap(0, 144);
end;

THPDFSIMDScanlineRenderBackend מבצע preflight לרשימת התצוגה המהודרת המלאה, ואז כותב מילויי מלבן נתמכים של DeviceRGB או DeviceGray ישירות אל משטח מפת הסיביות הסופית בת 32-bit דרך אצוות של 64 בייטים וזנבות וקטוריים של 16 בייטים

נתיבי מלבן מורכבים מצייתים לכלל המילוי nonzero או even-odd כפעולת צביעה אחת, תוך שימור חורים, כיוון subpath מומר ותוכן שצויר קודם; ה-rasterization בודקת ביטול באצוות תחומות ומשליכה משטחים חלקיים

ה-backend מקבל שמירה ושחזור של מצב גרפיקה, קנה מידה אורתוגונלי, מטריצות תרגום וסיבוב בזוויות ישרות, שינויי צבע מילוי, מלבנים, operators מילוי ואיפוס נתיב; טקסט, נתיבים שרירותיים, קווי מתאר, תמונות, שקיפות, חיתוך, תבניות, shadings, מרחבי צבע לא נתמכים וטרנספורמציות לא-אורתוגונליות נפסלים לפני הקצאת מפת סיביות

היכולות שלו מכריזות prbcSIMD, prbcThreadSafe ו-prbcDeterministic בלי לטעון להאצת device, שקיפות או ניהול צבע

THPDFSIMDRenderBackendStatistics מדווח על משטחים ישירים, מלבנים שרונדרו, בלוקים וקטוריים, פיקסלי זנב סקלריים ואת ה-operator הנדחה המדויק כשנדרש fallback

חוזה backend ‏מותאם אישית

ממש את IHPDFPageRenderBackend ‏והקצה אותו ל-THotPDF.PageRenderBackend

THPDFPageRenderBackendRequest מספק את אינדקס העמוד וה-DPI ‏המבוקשים, את ה-THPDFPageDisplayList ‏המהודר ואת פותר THPDFRenderDocAccess ‏עבור זרמים, תמונות, גופנים, תוכן אופציונלי, ניהול צבע וביטול

backend ‏יכול לבדוק כל אופרטור מהודר דרך THPDFPageDisplayList.GetToken ‏מבלי לנתח מחדש את תוכן העמוד

החזר True עם TBitmap שהוקצה זה עתה כדי להעביר ל-HotPDF את הבעלות על ה-bitmap; החזר False ללא bitmap כדי לדחות את הבקשה

מקביליות ו-fallback

מנועים המצהירים על prbcThreadSafe יכולים לרוץ במקביל דרך שני צינורות רינדור העמוד המקבילים

מנועים ללא יכולת זו מסודרים דרך מנעול קריאה ייעודי בעוד הידור ה-display-list ‏נשאר מקביל

rbfpSoftwareFallback מנסה שוב בקשה לא זמינה, שנדחתה או שנכשלה עם ה-renderer ‏הקיים, בעוד rbfpFail מעלה EHPDFRenderBackend

backend יכול באופן אופציונלי לממש IHPDFPageRenderBackendFailureInfo או להחזיר סיבה אבחונית לכל בקשה כך שפסילות מקבילות שומרות את הסיבה לניסיון הרינדור המדויק

שינוי המנוע פוסל ערכי מטמון עמודים מתוצרים בזיכרון ובמתמשך כך שתמונות מרנדרים שונים לעולם אינן מתערבבות

אבחון ושער חזותי

THPDFRenderBackendStatistics מדווח על ניסיונות, הצלחות, כשלים, fallbacks ‏תוכנה, קריאות מסודרות, זמן שחלף, שם המנוע וסיבת הכשל האחרונה

מתקן ה-parity ‏המובנה משתמש בשקיפות חופפת ומצהיר על Delta E ‏מקסימלי 0, שגיאת RGB ‏של compositing-alpha 0 ‏וספירת פיקסלים שונים 0 ‏מול ה-renderer ‏ברירת המחדל ב-Win32 ‏וב-Win64

ממשקי API ‏קשורים