TfrxHotPDFExport

FastReport 4 / FastReport VCL adapter (Lib\Addons\FastReport4\frxHotPDFExport.pas)

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

Φίλτρο εξαγωγής PDF για FastReport 4 / FastReport VCL που χρησιμοποιεί HotPDF ως υποκείμενο PDF backend αντί για τον ενσωματωμένο PDF writer του FastReport. Προορίζεται για έργα που ήδη ενσωματώνουν HotPDF και θέλουν ένα ενιαίο PDF backend σε όλη την εφαρμογή

 

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. Η unit καλεί RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), ώστε το φίλτρο να εμφανίζεται στην παλέτα components της IDE μόλις η unit προστεθεί σε package

 

Αντί να επανυλοποιεί ολόκληρο τον PDF emitter του FastReport ανά αντικείμενο, ο προσαρμογέας δρομολογεί κάθε προετοιμασμένη σελίδα μέσω του enhanced-metafile importer του 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 μέσω του auto-scaling importer ShowEnhancedMetafile του HotPDF

5. Finish καλεί EndDoc και αντιγράφει το προσωρινό PDF στο Stream που παρέχεται από τον caller αν χρειάζεται

 

Ιδιότητες

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

Title / Author / Subject / Keywords - metadata εγγράφου. Όταν το Title είναι κενό, ο προσαρμογέας χρησιμοποιεί ως fallback το Report.Name ώστε το PDF να έχει πάντα μη κενό τίτλο

PDFVersion - το επίπεδο προδιαγραφής PDF που πρέπει να στοχεύει το έγγραφο. Προεπιλογή είναι pdf17

CompressionLevel - FlateDecode level. Defaults to clDefault.

PDFVersion - το επίπεδο προδιαγραφής PDF που πρέπει να στοχεύει το έγγραφο. Προεπιλογή είναι pdf17

 

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

RenderDPI - πυκνότητα pixel που χρησιμοποιείται κατά το rasterising της σελίδας FastReport μέσω TMetafileCanvas. Μεγαλύτερη τιμή σημαίνει καθαρότερο κείμενο και γραμμές αλλά μεγαλύτερο metafile και PDF. Το 96 είναι το native screen DPI του FastReport· το 200 (προεπιλογή) δίνει ποιότητα εκτύπωσης χωρίς τεράστια αρχεία

 

Limitations of the metafile bridge

Vector και raster page content (κείμενο, γραμμές, ορθογώνια, fills, bitmaps) που αποδίδεται από το τυπικό layout engine του FastReport. Text strings που έχουν επιλυθεί από GDI (το HotPDF ενσωματώνει τις Windows-resolved fonts μέσω της κανονικής διαδρομής HotPDF font subset). Metadata σε επίπεδο εγγράφου

 

Packaging note

Επειδή οι σελίδες καταγράφονται ως enhanced metafiles, δεν μεταφέρονται PDF features ειδικά του FastReport που απαιτούν δομικές πληροφορίες (AcroForm fields, named destinations, document outlines, gates συμμόρφωσης PDF/A ή PDF/X). Η έξοδος είναι πιστή οπτική αναπαραγωγή αυτού που αποδίδει το FastReport στην οθόνη / εκτυπωτή, όχι δομημένο PDF. Έργα που χρειάζονται AcroForm output ή PDF/A conformance πρέπει να οδηγούν το HotPDF απευθείας μέσω της native API του

 

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