مرجع HotPDF
function HPDFCreateXPSDocumentHandler: IHPDFDocumentHandler;
Glyphs النصي وتحويل Path المتجهي الأصلي
يقبل مستورد المسارات هندسة مختصرة محدودة، وقواعد تعبئة F0 وF1، وتعبئات وحدود solid بلون ARGB أو RGB عبر خصائص أو عناصر خصائص، وقيم LinearGradientBrush متعددة المحطات وRadialGradientBrush بيضاوية عبر عناصر الخصائص، وشفافية محطات موحدة، وشفافية الفرشاة والمسار، وربط تدرجات نسبيًا إلى الحدود أو مطلقًا، وعرض الحدود، وقيم RenderTransform من ستة معاملات
تدعم تعبئات ImageBrush من حزم JPEG وPNG وTIFF وJPEG XR أنماط بلاط None وTile وFlipX وFlipY وFlipXY، وربط Viewbox وViewport مطلقًا أو بنسبة إلى RelativeToBoundingBox، والقص الأصلي للمسار وموضع الرسم، وخصائص Transform محدودة من ستة معاملات أو عناصر MatrixTransform داخل ImageBrush.Transform بإحداثيات خاصة بالفرشاة، وشفافية الفرشاة والمسار، وشفافية القناع الناعم لـ PNG، وتحديد الحجم الأصيل المراعي لـ DPI، وذاكرة تخزين مؤقت واحدة لكل مورد مفكوك التشفير في كل عملية تحويل
تستخدم فرش الصور المتكررة أنماط بلاط صور PDF الأصلية مع موضع واحد أو اثنين أو أربعة مقصوصة للخلايا العادية أو المنعكسة، بينما يبقى XObject صوري واحد وقناعه الناعم مشتركين، وتتسلسل مصفوفات الأنماط مع تحويلات الصفحة الثابتة والمسار والفرشاة دون تغيير هندسة المسار المتجهي
يقبل Path.OpacityMask أقنعة solid أو تدرجًا خطيًا متعدد المحطات أو تدرجًا شعاعيًا بيضاويًا أو أقنعة ImageBrush من PNG بمواضع عادية أو مبلطة أو منعكسة؛ وتُطوى الشفافية الموحدة في حالتي التعبئة والحد الموجودتين، بينما تستخدم الشفافية المتغيرة مجموعات شفافية DeviceGray أصلية محدودة تعيد استخدام أنماط التظليل وتدفقات الأقنعة الناعمة للصور
يقبل VisualBrush عناصر Canvas وPath وGlyphs مضمّنة أو مدعومة بالمورد، ويحل قيم StaticResource عبر نطاقات ResourceDictionary متداخلة وبعيدة، ويربط Viewbox مطلقًا بـ Viewport مطلق أو نسبي إلى RelativeToBoundingBox
يُترجم كل visual مميز مرة واحدة إلى PDF Form XObject قابل لإعادة الاستخدام مع موارده المطلوبة من الخطوط وXObjects والأنماط وحالات الرسومات وفضاءات الألوان؛ ينفذ الموضع العادي الـ Form مباشرة، بينما تستخدم Tile وFlipX وFlipY وFlipXY أنماط بلاط أصلية محدودة بدل توسيع أوامر رسم الـ visual لكل خلية
تتألف تحويلات وشفافيات الـ visual والفرشاة والمسار الحاوي في فضاءات إحداثياتها الخاصة، بينما تفشل الموارد التراجعية والربط التالف والمحتوى المتداخل غير المدعوم وتجاوز حدود العمق أو المحتوى أو ذاكرة التخزين المؤقت أو المواضع فشلًا آمنًا قبل نشر Form جزئي
يقبل Canvas.Clip هندسة مختصرة محدودة، وقيم PathGeometry من StaticResource محلية أو بعيدة، وعناصر خصائص مباشرة تحتوي مقاطع PathFigure بنيوية محدودة من خطوط وpolylines ومنحنيات Bézier وتربيعية وأقواس؛ وتتألف تحويلات الهندسة وقواعد التعبئة EvenOdd أو NonZero مع تحويل الـ Canvas قبل القص الأصلي في PDF بـ W* أو W
تحتفظ قصاصات Canvas المتداخلة بتقاطع حالة الرسومات في PDF، وتقيد تعليقات الروابط التابعة بحدود القص المحولة النشطة، وتعامل الهندسة الفارغة كقص فارغ دون رسالة تشخيص، وتسقف الهندسة المُحللة عند 100,000 قيمة رقمية، وتفشل فشلًا آمنًا قبل رسم العناصر التابعة إذا كانت الهندسة أو مصفوفتها الفعلية تالفة أو منفردة
تلتقط قيم Canvas.Opacity وأقنعة Canvas.OpacityMask من نوع solid أو تدرج خطي أو تدرج شعاعي أو صورة PNG العناصر التابعة في XObject Form منفصل بمساحة DeviceRGB حتى تُركب العناصر المتداخلة قبل تطبيق شفافية المجموعة؛ وتُطوى شفافية القناع الموحدة في حالة المجموعة تلك بينما تعيد الشفافية المتغيرة مكانًا استخدام موارد الأقنعة الناعمة الأصلية المحدودة
تحافظ مجموعات Canvas المتداخلة على تحويلاتها وقصاصاتها ومواردها المنقولة من الخطوط وXObjects والأنماط وحالات الرسومات وفضاءات الألوان وروابطها المقصوصة؛ ويسمح التحويل بحد أقصى 4,096 Form لمجموعات Canvas وبحد أقصى 16 MiB من الأوامر الملتقطة لكل مجموعة، ويرفض الأقنعة المكررة أو غير المدعومة أو التالفة أو المنفردة أو الضخمة قبل نشر موارد جزئية أو يتعذر الوصول إليها
يحلل Glyphs حتى 65,536 ربطًا صارمًا لقيم Indices، ويحافظ على عدد وحدات الرمز وعدد المحارف في العناقيد، والتقدمات الصريحة بمئات parts-per-em، والإزاحات الأفقية والرأسية، والتقدم المعكوس لقيم BidiLevel الفردية، وفرش التعبئة عبر الخصائص أو Glyphs.Fill، والشفافية، واستخراج Unicode، ويجمع الربطات البسيطة في مصفوفات TJ أصلية في PDF، ويفشل فشلًا آمنًا عند مدخلات تالفة أو غير محدودة
تقبل موارد FontUri الحزمية برامج TrueType وOpenType وقطع أعضاء TTC وخطوط XPS المشوشة بـ GUID، وتحافظ على قيم GlyphIndex المباشرة أو المحارف المشتقة من cmap، وتعيد استخدام بايتات الخط عبر النطاقات، وتحترم أذونات التضمين ومنع التجزئة، وتنشر خرائط ToUnicode واعية بالعناقيد
ينشئ FixedPage.NavigateUri على عناصر Path وGlyphs المحولة تعليقات روابط PDF أصلية تتبع حدود النقر هندسة المسار أو مقاييس المحارف؛ وتصبح روابط HTTP وHTTPS والبريد إجراءات URI، بينما تصبح مراجع الصفحات الحزمية النسبية وقطع LinkTarget المفكوكة من ترميز النسبة إجراءات GoTo أمامية أو خلفية بعد إنشاء كل الصفحات
يورَّث FixedPage.NavigateUri الخاص بالـ Canvas لكل عنصر Path وGlyphs وCanvas متداخل تابع حتى يتجاوزه تابع ب URI الخاص به؛ ويحتفظ كل تعليق بحدود الـ visual وتحويله الخاصين به، وتقيد قصاصات Canvas النشطة مناطق النقر الموروثة، وتعيد النطاقات المتداخلة الهدف الخارجي، وتحافظ مجموعات الشفافية المعزولة على التعليقات، ويبقى التقاط VisualBrush القابل لإعادة الاستخدام غير تفاعلي
يقبل نظام التنقل حتى 65,536 رابطًا وبحد أقصى 8,192 محرفًا لكل URI، ويفحص الإلغاء أثناء النشر، ويكتم التعليقات أثناء التقاط محتوى VisualBrush قابل لإعادة الاستخدام، ويرفض محارف التحكم والمخططات غير الآمنة والأهداف المفقودة وعدم تطابق الصفحات والقطع
تبقى الحالات غير القياسية وغير المدعومة كتشخيصات صريحة: RelativeTransform غير القياسي، وموارد المصفوفات غير المحلولة، وامتداد التدرّج اللوني Repeat أو Reflect، والاستيفاء غير القائم على sRGB، والشفافية (alpha) المتغيرة عند نقاط التوقف في فرش التلوين، والمحاور المتدهورة (degenerate)، وتحويل الألوان، وضربات الصور (image strokes)، وصناديق العرض النسبية لـ VisualBrush، ومحاكاة الأنماط، والأشكال (glyphs) الجانبية، وخصائص الضربة المتقدمة