|
TfrxHotPDFExport FastReport 4 / FastReport VCL adapter (
|
QuickReport adapter ReportBuilder device DevExpress adapter |
|
FastReport 4 / FastReport VCL PDF export filter koji koristi HotPDF kao osnovni PDF backend umesto FastReport-ovog ugrađenog PDF pisača. Namenjen je projektima koji već ugrađuju HotPDF i žele jedan PDF backend kroz celu aplikaciju
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;
Opis TfrxHotPDFExport nasleđuje TfrxCustomExportFilter, pa se uklapa u uobičajeni MyReport.Export(MyExportInstance) tok rada bez ikakvih promena FastReport jezgra. Jedinica poziva RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), tako da se filter pojavljuje u IDE paleti komponenti kada se jedinica doda u package
Umesto ponovne implementacije kompletnog FastReport-ovog PDF emitera po objektu, adapter svaku pripremljenu stranicu vodi kroz HotPDF-ov enhanced-metafile importer:
1. Start kreira svežu THotPDF instancu i postavlja metapodatke dokumenta (Title / Author / Subject / Keywords / PDFVersion / Compression) 2. StartPage dimenzioniše novu HotPDF stranicu u point-ovima tako da odgovara milimetarskim dimenzijama stranice FastReport izveštaja 3. ExportObject je no-op (cela stranica se hvata u trenutku FinishPage, a ne po objektu) 4. FinishPage renderuje pripremljenu FastReport stranicu u TMetafile preko Report.PreviewPages.DrawPage, a zatim pušta metafile kroz HotPDF ShowEnhancedMetafile auto-scaling importer 5. Finish poziva EndDoc i po potrebi kopira privremeni PDF u Stream koji je prosledio pozivalac
Svojstva Compressed - HotPDF kompresija strima je uključena (podrazumevano True). Postavite False za dijagnostičke PDF-ove (~5x veće fajlove) Title / Author / Subject / Keywords - metapodaci dokumenta. Kada je Title prazan, adapter pada nazad na Report.Name tako da PDF uvek ima neprazan naslov PDFVersion - nivo PDF specifikacije koji dokument treba da cilja. Podrazumevana vrednost je pdf17
RenderDPI - gustina piksela koja se koristi pri rasterizaciji FastReport stranice kroz TMetafileCanvas. Veća vrednost znači oštriji tekst i linije, ali veći metafile i PDF. 96 je FastReport-ov nativni screen DPI; 200 (podrazumevano) daje kvalitet za štampu bez ogromnih fajlova
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 Vektorski i raster sadržaj stranice (tekst, linije, pravougaonici, popune, bitmape) renderuje FastReport-ov standardni layout engine. GDI-rešeni tekstualni nizovi (HotPDF ugrađuje Windows-rešene fontove preko uobičajene HotPDF putanje za podskup fonta). Metapodaci na nivou dokumenta
Limitations of the metafile bridge Pošto se stranice hvataju kao enhanced metafile-ovi, FastReport-specifične PDF funkcije koje zahtevaju strukturne informacije (AcroForm polja, imenovana odredišta, obrise dokumenta, PDF/A ili PDF/X gates usklađenosti) se ne prenose. Izlaz je verna vizuelna reprodukcija onoga što FastReport prikazuje na ekranu / štampaču, a ne strukturirani PDF. Projekti kojima treba AcroForm izlaz ili PDF/A usklađenost treba direktno da vode HotPDF kroz njegov native API
Packaging note Adapter se nalazi u Lib\Addons\FastReport4\ i nije deo glavnih HotPDF*.dpk paketa, pa se zavisnost FastReport učitava samo u projektima koji se opredele za adapter. Smoke test (smoke_frx_hotpdf.dpr) nalazi se uz jedinicu
See also: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support |