TfrxHotPDFExport

مهايئ FastReport 4 / FastReport VCL (Lib\Addons\FastReport4\frxHotPDFExport.pas)

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

مرشح تصدير PDF لـ FastReport 4 / FastReport VCL يستخدم HotPDF كخلفية PDF أساسية بدلاً من كاتب PDF المدمج الخاص بـ FastReport؛ مخصص للمشاريع التي تدمج HotPDF بالفعل وتريد خلفية PDF واحدة عبر التطبيق بأكمله

 

Delphi declaration:

type

  TfrxHotPDFExport = class(TfrxCustomExportFilter)

  published

    property Compressed: Boolean default True;

    property Title, Author, Subject, Keywords: string;

    property PDFVersion: TPDFVersType default pdf17;

    property CompressionLevel: TPDFCompressionLevel default clDefault;

    property RenderDPI: Integer default 200;

  end;

 

الوصف

ينحدر TfrxHotPDFExport من TfrxCustomExportFilter، لذا فهو يدخل في سير العمل العادي لـ MyReport.Export(MyExportInstance) دون أي تغييرات أساسية في FastReport؛ وتستدعي الوحدة RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport])، لذا يظهر المرشح في لوحة مكونات IDE بمجرد إضافة الوحدة إلى حزمة

 

وبدلاً من إعادة تنفيذ باعث PDF الكامل لكل كائن في FastReport، يوجه المهايئ كل صفحة معدة من خلال مستورد ملفات الميتا المحسن لـ HotPDF:

 

1. تقوم Start بإنشاء مثيل THotPDF جديد وتعيين البيانات الميتا للمستند (العنوان / الكاتب / الموضوع / الكلمات المفتاحية / إصدار PDF / الضغط)

2. تقوم StartPage بتحديد حجم صفحة HotPDF الجديدة بالنقاط لتناسب أبعاد المليمتر لصفحة تقرير FastReport

3. ExportObject هي عملية فارغة (يتم التقاط الصفحة بأكملها في وقت FinishPage، وليس لكل كائن)

4. تقوم FinishPage بتقديم صفحة FastReport المعدة إلى TMetafile عبر Report.PreviewPages.DrawPage، ثم تشغيل ملف الميتا من خلال مستورد ShowEnhancedMetafile ذو القياس التلقائي لـ HotPDF

5. تستدعي Finish الأسلوب EndDoc وتنسخ ملف PDF المؤقت إلى التدفق المقدم من المستدعي عند الحاجة

 

الخصائص

Compressed - HotPDF stream compression on (default True). Set False for diagnostic PDFs (~5x larger files).

Title / Author / Subject / Keywords - metadata المستند. عندما يكون Title فارغًا يعود adapter إلى Report.Name حتى يمتلك PDF دائمًا عنوانًا غير فارغ

PDFVersion - مستوى مواصفة PDF الذي يجب أن يستهدفه المستند. القيمة الافتراضية pdf17

CompressionLevel - FlateDecode level. Defaults to clDefault.

RenderDPI - كثافة pixel المستخدمة عند rasterising صفحة FastReport عبر TMetafileCanvas. القيم الأعلى تعطي نصوصًا وخطوطًا أوضح لكنها تزيد حجم metafile وPDF. تمثل 96 قيمة DPI الشاشة الأصلية في FastReport؛ وتعطي 200، وهي القيمة الافتراضية، نتيجة بجودة طباعة دون ملفات ضخمة

 

سير العمل النموذجي

 

Exp := TfrxHotPDFExport.Create(nil);

try

  Exp.FileName := 'Report.pdf';

  Exp.Title := 'Monthly Statement';

  Exp.PDFVersion := pdf17;

  Exp.RenderDPI := 200;

  frxReport1.Export(Exp);

finally

  Exp.Free;

end;

 

القدرات المحفوظة

محتوى الصفحة المتجه والنقطي (نصوص، سطور، مستطيلات، تعبئة، صور نقطية) المقدم بواسطة محرك تخطيط FastReport القياسي؛ وسلاسل النصوص التي تم حلها بواسطة GDI (يدمج HotPDF الخطوط التي تم حلها بواسطة Windows عبر مسار مجموعة خطوط HotPDF العادية)؛ والبيانات الميتا على مستوى المستند

 

قيود جسر ملف الميتا

نظرًا لأنه يتم التقاط الصفحات كملفات ميتا محسنة، لا يتم نشر ميزات PDF الخاصة بـ FastReport والتي تتطلب معلومات هيكلية (حقول AcroForm، والوجهات المسماة، والمخططات التفصيلية للمستند، وبوابات امتثال PDF/A أو PDF/X)؛ وتكون المخرجات عبارة عن إعادة إنتاج مرئية دقيقة لما يقدمه FastReport على الشاشة / الطابعة، وليست ملف PDF مهيكل؛ والمشاريع التي تحتاج إلى مخرجات AcroForm أو امتثال PDF/A يجب أن تقود HotPDF مباشرةً عبر واجهة برمجة التطبيقات الأصلية الخاصة به

 

ملاحظة التعبئة

يعيش المهايئ في Lib\Addons\FastReport4\ وليس جزءًا من حزم HotPDF*.dpk الرئيسية، لذا لا يتم سحب تبعية FastReport إلا بواسطة المشاريع التي تختار استخدام المهايئ؛ ويعيش اختبار الدخان (smoke_frx_hotpdf.dpr) جنبًا إلى جنب مع الوحدة

 

انظر أيضًا: TQRHotPDFExportFilter، TppHotPDFDevice، dxHotPDFExportReportLink، THPDFPage.ShowMetafile، دعم EMF/WMF المحسن