TfrxHotPDFExport

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

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

FastReport 4 / FastReport VCL PDF-eksportfilter som bruker HotPDF som underliggende PDF-backend i stedet for FastReports egen innebygde PDF-skriver. Den er laget for prosjekter som allerede bruker HotPDF og vil ha én felles PDF-backend i hele programmet

 

Delphi-syntaks:

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;

 

Beskrivelse

TfrxHotPDFExport arver fra TfrxCustomExportFilter, så den passer inn i den vanlige MyReport.Export(MyExportInstance)-arbeidsflyten uten endringer i FastReport-kjernen. Unit-en kaller RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), så filteret vises i IDE-komponentpaletten når unit-en er lagt til i en pakke.

 

I stedet for å reimplementere FastReports fulle per-objekt PDF-emitter, sender adapteren hver forberedte side gjennom HotPDFs forbedrede metafil-importør:

 

1. Start oppretter en ny THotPDF-instans og setter dokumentmetadataene (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. StartPage setter den nye HotPDF-siden i punkter slik at den samsvarer med FastReport-rapportsidens millimeterdimensjoner

3. ExportObject gjør ingenting (hele siden fanges ved FinishPage, ikke per objekt)

4. FinishPage rendrer den forberedte FastReport-siden inn i en TMetafile via Report.PreviewPages.DrawPage, og spiller deretter metafilen gjennom HotPDFs automatisk skalerende ShowEnhancedMetafile-importør

5. Finish kaller EndDoc og kopierer den midlertidige PDF-en til strømmen som kalleren har oppgitt, hvis det trengs

 

Egenskaper

Compressed - HotPDF-strømkkomprimering på (standard True). Sett False for diagnostikk-PDF-er (omtrent 5x større filer)

Title / Author / Subject / Keywords - dokumentmetadata. Når Title er tom, faller adapteren tilbake til Report.Name slik at PDF-en alltid har en ikke-tom tittel

PDFVersion - PDF-spesifikasjonsnivået dokumentet skal sikte mot. Standard er pdf17

CompressionLevel - FlateDecode-nivå. Standard er clDefault

RenderDPI - pikseltetthet brukt når FastReport-siden rasteriseres gjennom TMetafileCanvas. Høyere gir skarpere tekst og linjer, men større metafil og PDF. 96 er FastReports opprinnelige skjerm-DPI, mens 200 (standard) gir utskriftskvalitet uten enorme filer

 

Typisk arbeidsflyt

 

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;

 

Bevarte egenskaper

Vektor- og raster-sideinnhold (tekst, linjer, rektangler, fyll og bitmaps) rendret av FastReports standard layoutmotor. Tekststrenger løst gjennom GDI (HotPDF bygger inn Windows-løste fonter via den vanlige banen for fontunderinndeling). Dokumentmetadata på dokumentnivå

 

Begrensninger i metafile-broen

Siden sidene fanges som enhanced metafiles, blir ikke FastReport-spesifikke PDF-funksjoner som krever strukturell informasjon (AcroForm-felt, navngitte destinasjoner, dokumentomriss, PDF/A- eller PDF/X-samsvarsporter) videreført. Resultatet er en trofast visuell gjengivelse av det FastReport rendrer til skjerm / skriver, ikke en strukturert PDF. Prosjekter som trenger AcroForm-utdata eller PDF/A-samsvar bør styre HotPDF direkte gjennom det opprinnelige API-et

 

Pakkingsmerknad

Adapteren ligger i Lib\Addons\FastReport4\ og er ikke en del av hovedpakkene HotPDF*.dpk, så FastReport-avhengigheten trekkes bare inn av prosjekter som velger adapteren. En smoke-test (smoke_frx_hotpdf.dpr) ligger ved siden av unit-en.

 

Se også: TQRHotPDFExportFilter, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Forbedret EMF/WMF-støtte