قوائم العرض وإنتاج الطباعة
يجمّع HotPDF تدفقات الصفحات المحمّلة إلى مثيلات THPDFPageDisplayList قابلة لإعادة الاستخدام مع مقاييس THPDFDisplayListInfo ومربعات إحاطة لكائنات المحتوى
يخزّن عرض المستند القوائم المجمَّعة مؤقتًا، بينما يمكن للمستدعي طلب قائمة مملوكة بشكل مستقل لإعادة التنفيذ المتكررة أو استعلامات الكائنات الإقليمية
المفسِّر الإنتاجي المشترك
تمرّ كل من إعادة تشغيل الصور النقطية غير التدريجية، وDirect-DC المباشر، والنماذج، وقوائم العرض عبر المحتوى المرمَّز مسبقًا إلى HPDFInterpretContentTokensDevice، التي تملك اجتياز المعاملات وحدود الإلغاء
ينفذ THPDFPageRenderer الواجهة IHPDFContentOperatorDevice، لذا يستدعي الاجتياز المشترك آلة حالاته الكاملة للرسومات والنص والموارد والقص والأنماط والشفافية والمحتوى الموسوم والصور، دون تقليص عرض الإنتاج إلى سطح الاستدعاء الدلالي الأصغر
تخزّن قوائم العرض فهارس رموز المعاملات مؤقتًا أثناء تجميع التدفقات، وتعيد تشغيل تلك الفهارس فقط، متجنبةً مسح المعاملات المتكرر؛ وتكشف THPDFPageDisplayList.OperatorCount وTHPDFDisplayListInfo.OperatorCount عدد الأوامر المخزَّنة
الأجهزة الدلالية التي تنفذ IHPDFContentDevice فقط تحتفظ بردود نداء مُرشَّحة حسب القدرات، بينما تتلقى أجهزة المعاملات الكاملة معاملًا واحدًا مُتحقَّقًا منه في كل مرة مع نقطة تفتيش إلغاء واحدة لكل معامل
العرض المحدود والمتزامن
يتلقى THPDFRenderTileEvent بلاطة واحدة بحجم يحدده المستدعي أو شريطًا أفقيًا واحدًا في كل مرة، مما يبقي ذروة ذاكرة الصورة النقطية مستقلة عن حجم الصفحة الكامل
تُداخِل RenderLoadedPagesParallel تجميع قائمة العرض مع إعادة التشغيل، وتبدأ أول صفحة جاهزة دون انتظار حاجز تجميع كامل، وتوازن ديناميكيًا كلا المرحلتين عبر عمال محدودين، وتُعيد THPDFBitmapArray بترتيب الإدخال
يعمل التجميع خارج قفل ذاكرة قوائم العرض المؤقتة، بينما يتيح القبول المزدوج التحقق وعدادات الاستخدام المحمية للصفحات غير المترابطة أن تُجمَّع بشكل متزامن دون تكرار الإدخالات المنشورة أو إخلاء قائمة أثناء إعادة التشغيل
تكشف THPDFParallelRenderPipelineInfo عن إصابات ذاكرة التخزين المؤقت، وعمليات التجميع، والإتمامات، وذروة تزامن التجميع والعرض، وعدد الصفحات المجمَّعة عند أول نتيجة، وزمن الانتظار حتى أول نتيجة، والزمن الإجمالي المنقضي
تُسلِّم RenderLoadedPagesParallelOrdered ردود النداء بترتيب الإدخال على خيط الاستدعاء، وتُحرِّر كل صورة نقطية مُقترَضة بعد عودة رد النداء، بينما يطبق عمق مخرجات يختاره المستدعي ضغطًا خلفيًا على المنتِج ويحجز فتحة واحدة للصفحة المطلوبة التالية بحيث لا يمكن لصفحة مبكرة بطيئة أن تُسبب جمودًا خلف النتائج اللاحقة
يحتفظ البث المرتَّب بقائمة عرض واحدة على الأكثر وعرض نشط واحد لكل عامل، بالإضافة إلى طابور الصور النقطية المكتملة المحدود، بدلًا من الاحتفاظ بمخرجات المهمة الكاملة مقيمةً
تستهلك خلفيات العرض القابلة للتوصيل القوائم المجمَّعة نفسها عبر عرض موارد مستند غير مالكة، بحيث تتجنب المسارات المتزامنة والموازية إعادة تحليل محتوى الصفحة بينما تحدد قدرات الخلفية ما إذا كان يمكن تداخل الاستدعاءات أو تتطلب إرسالًا تسلسليًا
يحدّ مجدوِل ذروة الذاكرة على مستوى العملية الآن كلا واجهتي API الموازيتين: يقلل تقدير أكبر صفحة عدد العمال الأولي، وتحجز كل صفحة مُطالَب بها مجموعة عملها الكاملة المقدَّرة، ويحتفظ الإخراج المرتَّب بذلك الحجز طوال تسليم رد النداء
يُوقظ إلغاء المجدوِل منتظري الميزانية عند إلغاء رد النداء أو فشل العامل، بينما تكشف تتبعات القياس عن عدد العمال المطلوب مقابل الفعلي، ووزن ذروة الحجز، والصفحات المتأخرة، وإجمالي زمن الانتظار
يُسلِّم RenderLoadedPageTilesParallel وRenderLoadedPageBandsParallel بلاطات مرتَّبة حسب الصفوف أو أشرطة من أعلى إلى أسفل مُقترَضة عبر عمال معزولين، بينما لا يملك كل عامل أكثر من بلاطة واحدة، ويقلل سقف ذاكرة عمل يحدده المستدعي التزامن قبل أول مطالبة
تنسخ سياقات العرض الموازي تسلسلات رموز محارف النوع 3 غير القابلة للتغيير وشاشات عتبة الهالفتون من ذاكرة LRU محدودة واحدة، مع الحفاظ على ملكية خاصة بالمُصيِّر لحالة الرسومات القابلة للتغيير وموارد GDI
تستهلك SaveLoadedPageToPng وSaveLoadedPageToPngStream وSaveLoadedPagesToTiffBanded وSaveLoadedPagesToTiffStreamBanded مُصيِّر الأشرطة نفسه عبر مرمِّزات PNG أو TIFF متدفقة، فتصدر الصفحات الضخمة ناتجًا مضغوطًا صفًا صفًا دون الاحتفاظ بمخزن إطارات كامل، بينما تُبلِّغ THPDFBandImageExportInfo عن الأشرطة المُعرَّضة، والصفوف المُرمَّزة، والعمال، وبايتات ذروة الحجز، وبايتات الإخراج، والزمن المنقضي، والإلغاء
يُنسَّق فك تشفير الصور المشترك بشكل منفصل بحيث يظل عمل الصفحة المتجهي موازيًا دون إفساد إدخالات ذاكرة تخزين الصور المفكوكة مؤقتًا
تُسخِّن PrefetchLoadedPages إدخالات الصور النقطية برمز إلغاء مخصص أثناء التجميع والعرض خارج قفل ذاكرة التخزين المؤقت، ويستحوذ عرض الصفحة الأمامية على العامل قبل بدء العمل الحساس لزمن الاستجابة
تُبلِّغ THPDFLoadedPagePrefetchInfo عن العمل المجدوَل والمبدوء والمكتمل والمخزَّن مؤقتًا والمُعرَّض والفاشل والمُلغى والمستبق في المقدمة، إلى جانب آخر وذروة زمن انتظار الإلغاء
ضوابط الشفافية والطباعة
يتحقق تسطيح الشفافية أولًا من عدد الشفافيات في قائمة العرض وسقف بكسل يحدده المستدعي، ثم يستبدل رسم الصفحة بصورة RGB معايَرة مضغوطة بلا فقدان باستخدام Flate
تبقى الصفحات ذات ملونات Separation أو DeviceN محتوى متجهيًا، مع كشف الملونات المكتشفة وحالة الحفاظ عليها للمستدعي
يُنفِّذ المُصيِّر دوال النقل وقواميس الهالفتون من النوع 1 أو 5 أو 6 أو 10 أو 16 من ExtGState مع الحفاظ على شاشات RGB مستقلة وتجاوزات النقل الخاصة بها عبر q وQ
تُبلِّغ THPDFInkCoverageInfo عن متوسط تغطية CMYK، والحد الأقصى لإجمالي مساحة التغطية، وعدد البكسلات فوق العتبة المختارة
يدعم إخراج اللوحات الأساسية والمنفصلة الملونات DeviceCMYK وSeparation وDeviceN
تستخدم إعادة كتابة ألوان الصفحة المحمَّلة المُصيِّر الكامل نفسه لتحويل الصفحات المعقدة إلى تدرج رمادي أو RGB أو CMYK مع الاحتفاظ بمحتوى صفحة الألوان البسيطة الخاصة بالجهاز كمتجهات وتطبيق سياسة لوحة بقعية صريحة
تجمع THPDFTrappingInfo بين إعلانات مقاومة الانزياح (trapping) الخاصة بالمستند، وبيانات وصف الصفحة، وتشخيصات TrapNet البنيوية
سير عمل ICC
يمكن لتحويل العرض أن يجمع بين ملف تعريف مصدر PDF، ومساحة لون المزج، وملف تعريف الإثبات، وملف تعريف الإخراج، ووجهة نقطية sRGB
تُطبَّق جميع نوايا عرض ICC الأربع وتعويض النقطة السوداء الحقيقي باتساق على الألوان المتجهية وعينات الصور عبر خط الأنابيب بأكمله
تُشارَك التحويلات الكاملة عبر مسارات العرض المتجهي والصور والصفحات والعرض الموازي من خلال ذاكرة LRU آمنة للخيوط سعتها 64 ميبيبايت، مفتاحها محتويات ملفات تعريف المصدر والإثبات والإخراج، ونية العرض الفعالة، وتعويض النقطة السوداء
يعيد تسطيح الشفافية استخدام خط أنابيب التحويل نفسه، ثم يُصدر بلاطات CalRGB بمعيار D65 خالية من الفواصل ضمن ميزانيات بكسل يتحكم بها المستدعي لإجمالي الصورة النقطية ولكل بلاطة
واجهات API الرئيسية
- خلفيات العرض القابلة للتوصيل
IHPDFContentOperatorDeviceHPDFInterpretContentTokensDeviceTHotPDF.CompileLoadedPageDisplayListTHPDFPageDisplayList.GetTokenTHPDFPageDisplayList.GetObjectTHPDFPageDisplayList.QueryObjectIndexesTHPDFPageDisplayList.PageObjectTHPDFPageDisplayList.ResourcesTHPDFPageDisplayList.MediaBoxTHotPDF.RenderLoadedPageTilesوRenderLoadedPageBandsTHotPDF.RenderLoadedPageTilesParallelوRenderLoadedPageBandsParallelTHPDFParallelTileRenderInfoTHotPDF.SaveLoadedPageToPngTHotPDF.SaveLoadedPageToPngStreamTHotPDF.SaveLoadedPagesToTiffBandedTHotPDF.SaveLoadedPagesToTiffStreamBandedTHPDFBandImageExportInfoTHotPDF.RendererSharedCacheMaxBytesTHotPDF.RenderLoadedPagesParallelTHotPDF.RenderLoadedPagesParallelOrderedTHPDFParallelRenderPipelineInfoTHotPDF.PrefetchLoadedPagesTHotPDF.GetLoadedPagePrefetchInfoTHPDFLoadedPagePrefetchInfoTHotPDF.FlattenLoadedPageTransparencyTHotPDF.FlattenLoadedPageComplexGraphicsTHotPDF.RenderLoadedPageSeparationPlateTHotPDF.GetLoadedPageSpotColorantsTHotPDF.RewriteLoadedPageColorsTHotPDF.AnalyzeLoadedPageInkCoverageTHotPDF.InspectLoadedPageTrappingTHotPDF.ConfigureRenderICCWorkflow