|
TfrxHotPDFExport FastReport 4 / FastReport VCL adapter (
|
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. 2. 3. 4. FinishPage αποδίδει την προετοιμασμένη σελίδα FastReport σε TMetafile μέσω Report.PreviewPages.DrawPage και έπειτα αναπαράγει το metafile μέσω του auto-scaling importer ShowEnhancedMetafile του HotPDF 5. Finish καλεί EndDoc και αντιγράφει το προσωρινό PDF στο Stream που παρέχεται από τον caller αν χρειάζεται
Ιδιότητες
Title / Author / Subject / Keywords - metadata εγγράφου. Όταν το Title είναι κενό, ο προσαρμογέας χρησιμοποιεί ως fallback το Report.Name ώστε το PDF να έχει πάντα μη κενό τίτλο PDFVersion - το επίπεδο προδιαγραφής PDF που πρέπει να στοχεύει το έγγραφο. Προεπιλογή είναι pdf17
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 |