TfrxHotPDFExport

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

 

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

CompressionLevel - FlateDecode level. Defaults to clDefault.

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