PDFium Delphi Component Docs

التصيير الأصلي الاختياري

الوحدة: PDFium
يوفر تصيير Skia مقيَّدًا بالقدرات وواجهة ABI اختيارية ذات إصدار لخرج ألواح الألوان المباشرة والطباعة الفوقية بدقة

استعلامات القدرات

function GetSkiaRenderCapabilities: TPdfSkiaRenderCapabilities;
function GetPrintOutputCapabilities: TPdfPrintOutputCapabilities;

تحمّل كلا الاستعلامين وحدة PDFium المختارة عند اللزوم ولا يُبلِّغان إلا عن التصديرات الموجودة في تلك الوحدة بعينها

التصديرات الاختيارية المفقودة لا تمنع أبدًا تحميل PDFium الطبيعي أو التصيير النقطي أو التحرير أو الحفظ

يشير TPdfSkiaRenderCapabilities.PageSceneCache إلى أن RenderPageSkiaByIndex يستطيع إعادة استخدام مخزن الصفحات المحللة المحدود الذي يملكه TPdf

يشير TPdfSkiaRenderCapabilities.FormOverlay إلى أن تصدير النماذج الاختياري المنفصل يستطيع رسم طبقة النماذج العلوية بعد محتوى الصفحة

يكون TPdfPrintOutputCapabilities.VersionCompatible صحيحًا فقط عندما تعيد الإضافة قيمة PdfPrintOutputAbiVersion بالضبط

يكون TPdfPrintOutputCapabilities.ExtensionPresent صحيحًا بمجرد تحميل إضافة خرج الطباعة، ويحمل AbiVersion رقم ABI الخام الذي تُبلِّغ عنه

تبوّب SpotPlateRendering و OverprintDetection و OverprintPreview الوظائف RenderSpotPlate و PageUsesOverprint و RenderOverprintPreview

تصيير الصفحات والنماذج بـ Skia

procedure TPdf.RenderPageSkia(Canvas: FPDF_SKIA_CANVAS; Width, Height: Integer; DrawFormOverlay: Boolean = True);
procedure TPdf.RenderPageSkiaByIndex(Canvas: FPDF_SKIA_CANVAS; PageNumber, Width, Height: Integer; DrawFormOverlay: Boolean = True);

يملك المستدعي SkCanvas الأصلي ويمرره كـ FPDF_SKIA_CANVAS

ترسم RenderPageSkia الصفحة النشطة بينما ترسم RenderPageSkiaByIndex أي صفحة بواحد أساس دون تغيير PageNumber

عند طلب ذلك ووجود بيئة ملء نماذج، تُرسم طبقة النماذج العلوية بعد محتوى الصفحة عبر تصدير النماذج الاختياري المنفصل

تقبل واجهة Skia الأصلية حجمًا بالبكسلات لكنها لا تكشف معاملي الدوران والأعلام الخاصين بالمصيّر النقطي

function TPdf.SpotPlates: TPdfSpotPlateInfos;
function TPdf.PageUsesOverprint: Boolean;
function TPdf.RenderSpotPlate(PlateIndex, Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap;
function TPdf.RenderOverprintPreview(Width, Height: Integer; Rotation: TRotation = ro0; Options: TRenderOptions = []; Color: TColor = clWhite): TBitmap;

تستدعي هذه الطرق إضافة خرج الطباعة الاختيارية فقط عندما يتوافق إصدارها وعلم قدرتها وتصدير الدالة المقابل معًا

الصور النقطية المُعادة ملك للمستدعي وتستخدم مسار PDFium النقطي المحدود نفسه الذي يستخدمه التصيير العادي

عندما تغيب الإضافة ترفع كل عملية EPdfError بدلًا من محاكاة الألواح من خرج RGB أو الادعاء بسلوك طباعة فوقية غير دقيق

واجهة ABI الإصدار 1 لخرج الطباعة

التصديرالعقد
PDFiumPas_GetPrintOutputAbiVersionيعيد PdfPrintOutputAbiVersion كقيمة غير موقَّعة بـ 32 بت
PDFiumPas_GetPrintOutputCapabilitiesيعيد أعلام قدرات تعداد الألوان المباشرة وتصييرها وكشف الطباعة الفوقية ومعاينتها المعلَنة
PDFiumPas_PageCountSpotPlatesيعيد عدد ألواح غير سالب ومحدودًا لـ FPDF_PAGE واحد
PDFiumPas_PageGetSpotPlateNameيعيد عدد بايتات UTF-8 شامل الصفر الختامي ولا يكتب إلا داخل المخزن المزوَّد
PDFiumPas_PageUsesOverprintيعيد FPDF_BOOL بـ 32 بت لصفحة واحدة
PDFiumPas_RenderSpotPlateيصيّر لوحًا واحدًا صفر الأساس في FPDF_BITMAP يملكه المستدعي
PDFiumPas_RenderOverprintPreviewيصيّر معاينة طباعة فوقية مُدارة الألوان في FPDF_BITMAP يملكه المستدعي

تستخدم كل دوال ABI الاستدعاء cdecl وقيمًا صحيحة و FPDF_BOOL بـ 32 بت ومقابض بحجم المؤشر ودلالات صفحات يملكها PDFium

يجب أن تُكمل دوال التصيير عملها تزامنيًا وألا تحتفظ بالصورة النقطية أو مقبض الصفحة المزوَّدَين

تُحفظ أعلام القدرات المجهولة في RawCapabilityBits لكنها لا تُعامل كسلوك مدعوم

مثال

SkiaCaps := GetSkiaRenderCapabilities;
if SkiaCaps.PageRender then
  Pdf.RenderPageSkiaByIndex(SkCanvas, 1, 1200, 1600);

PrintCaps := GetPrintOutputCapabilities;
if PrintCaps.SpotPlateEnumeration then
  Plates := Pdf.SpotPlates;

انظر أيضًا

TPdf.RenderPageByIndex, TPdf.ClearPageSceneCache