TfrxHotPDFExport

מסנן ייצוא PDF עבור FastReport 4 / FastReport VCL שמשתמש ב-HotPDF כ-backend ה-PDF הבסיסי במקום כותב ה-PDF המובנה של FastReport. מיועד לפרויקטים שכבר מטמיעים HotPDF ורוצים backend PDF יחיד בכל היישום

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

מסנן ייצוא PDF עבור FastReport 4 / FastReport VCL שמשתמש ב-HotPDF כ-backend ה-PDF הבסיסי במקום כותב ה-PDF המובנה של FastReport. מיועד לפרויקטים שכבר מטמיעים HotPDF ורוצים backend 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) ללא שינויי core ב-FastReport. היחידה קוראת RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), ולכן המסנן מופיע ב-IDE component palette אחרי שהיחידה נוספה לחבילה

 

במקום לממש מחדש את emitter ה-PDF המלא של FastReport לכל אובייקט, המתאם מנתב כל עמוד מוכן דרך importer ה-enhanced-metafile של HotPDF:

 

1. Start creates a fresh THotPDF instance and sets the document metadata (Title / Author / Subject / Keywords / PDFVersion / Compression).

2. StartPage sizes the new HotPDF page in points to match the FastReport report page's millimeter dimensions.

3. ExportObject is a no-op (the whole page is captured at FinishPage time, not per-object).

4. FinishPage מרנדר את עמוד FastReport המוכן לתוך TMetafile דרך Report.PreviewPages.DrawPage, ואז מנגן את ה-metafile דרך importer בעל auto-scaling של ShowEnhancedMetafile ב-HotPDF

5. Finish קורא ל-EndDoc ומעתיק את ה-PDF הזמני אל ה-Stream שסיפק הקורא אם יש צורך

 

מאפיינים

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

Title / Author / Subject / Keywords - metadata של המסמך. כאשר Title ריק, המתאם נופל חזרה אל Report.Name, כך של-PDF תמיד יש כותרת לא ריקה

PDFVersion - רמת מפרט PDF שהמסמך אמור ליעד. ברירת המחדל היא pdf17

CompressionLevel - FlateDecode level. Defaults to clDefault.

RenderDPI - צפיפות pixel המשמשת בעת rasterising של עמוד FastReport דרך TMetafileCanvas. ערך גבוה יותר נותן טקסט וקווים חדים יותר אך מגדיל את ה-metafile ואת ה-PDF. 96 הוא DPI המסך המקורי של FastReport; הערך 200, ברירת המחדל, נותן תוצאה באיכות הדפסה ללא קבצים עצומים

 

Typical workflow

 

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;

 

Capabilities preserved

תוכן עמוד וקטורי ו-raster, כולל טקסט, קווים, מלבנים, מילויים ו-bitmaps, שמרונדר על ידי מנוע הפריסה הסטנדרטי של FastReport. מחרוזות טקסט שנפתרו על ידי GDI, כאשר HotPDF מטמיע את הפונטים שנפתרו ב-Windows דרך מסלול font subset הרגיל של HotPDF. metadata ברמת המסמך

 

Limitations of the metafile bridge

מפני שהעמודים נלכדים כ-enhanced metafiles, תכונות PDF ייחודיות ל-FastReport שדורשות מידע מבני, כמו שדות AcroForm, named destinations, document outlines ושערי תאימות PDF/A או PDF/X, אינן מועברות. הפלט הוא שחזור חזותי נאמן של מה ש-FastReport מרנדר למסך או למדפסת, לא PDF מובנה. פרויקטים שזקוקים לפלט AcroForm או לתאימות PDF/A צריכים להפעיל את HotPDF ישירות דרך ה-API המקורי שלה

 

Packaging note

המתאם נמצא ב-Lib\Addons\FastReport4\ ואינו חלק מחבילות HotPDF*.dpk הראשיות, לכן תלות FastReport נמשכת רק על ידי פרויקטים שבוחרים להשתמש במתאם. בדיקת smoke ‏(smoke_frx_hotpdf.dpr) נמצאת לצד היחידה

 

See also: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support