TfrxHotPDFExport

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

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

Izvozni filter PDF za FastReport 4 / FastReport VCL, ki uporablja HotPDF kot osnovni PDF backend namesto FastReportovega vgrajenega zapisovalnika PDF. Namenjen je projektom, ki že vključujejo HotPDF in želijo en sam PDF backend v celotni aplikaciji

 

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;

 

Description

TfrxHotPDFExport je izpeljan iz TfrxCustomExportFilter, zato se brez sprememb jedra FastReporta vključi v običajen potek MyReport.Export(MyExportInstance). Enota pokliče RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), zato se filter prikaže v paleti komponent IDE, ko je enota dodana v paket

 

Namesto da bi znova implementirala FastReportov celoten izhodnik PDF po posameznih objektih, prilagoditev vsako pripravljeno stran usmeri skozi HotPDFov uvoznik enhanced-metafile:

 

1. Start ustvari svež primerek THotPDF in nastavi metapodatke dokumenta (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. StartPage določi velikost nove strani HotPDF v točkah, da se ujema z milimetrskimi dimenzijami strani poročila FastReport

3. ExportObject ne naredi ničesar (celotna stran se zajame ob času FinishPage, ne po objektih)

4. FinishPage pripravljeno stran FastReport izriše v TMetafile prek Report.PreviewPages.DrawPage, nato pa metafile predvaja skozi HotPDFov uvoznik ShowEnhancedMetafile s samodejnim skaliranjem

5. Finish pokliče EndDoc in po potrebi kopira začasni PDF v Stream, ki ga zagotovi klicatelj

 

Lastnosti

Compressed - stiskanje toka HotPDF je vklopljeno (privzeto True). Nastavite False za diagnostične PDF-je (približno 5-krat večje datoteke)

Title / Author / Subject / Keywords - metapodatki dokumenta. Kadar je Title prazen, se prilagoditev vrne na Report.Name, zato ima PDF vedno neprazen naslov

PDFVersion - raven specifikacije PDF, ki ji naj dokument sledi. Privzeto je pdf17

CompressionLevel - FlateDecode level. Defaults to clDefault.

RenderDPI - gostota slikovnih pik, uporabljena pri rastru strani FastReport prek TMetafileCanvas. Višja vrednost pomeni ostrejše besedilo in črte, vendar večji metafile in PDF. 96 je izvorni zaslonski DPI FastReporta; 200 (privzeto) da rezultate, primerne za tisk, brez ogromnih datotek

 

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

Vektorska in rastrska vsebina strani (besedilo, črte, pravokotniki, zapolnitve, bitne slike), ki jo izriše standardni postavitveni mehanizem FastReporta. Besedilni nizi, razrešeni prek GDI (HotPDF vgradi pisave, ki jih razreši Windows, prek običajne poti podnabora pisav HotPDF). Metapodatki na ravni dokumenta

 

Limitations of the metafile bridge

Ker so strani zajete kot enhanced metafiles, se posebne funkcije PDF FastReporta, ki zahtevajo strukturne informacije (polja AcroForm, imenovane destinacije, orisi dokumenta, prehodi skladnosti PDF/A ali PDF/X), ne prenesejo. Izhod je zvest vizualni posnetek tega, kar FastReport izriše na zaslon / tiskalnik, ne pa strukturiran PDF. Projekti, ki potrebujejo izhod AcroForm ali skladnost PDF/A, naj HotPDF uporabljajo neposredno prek njegovega izvornega API

 

Packaging note

Adapter živi v Lib\Addons\FastReport4\ in ni del glavnih paketov HotPDF*.dpk, zato se odvisnost FastReport naloži samo v projekte, ki adapter vključijo. Preizkus dima (smoke_frx_hotpdf.dpr) je v isti mapi kot enota

 

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