TfrxHotPDFExport

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

 

QuickReport adapter  ReportBuilder device  DevExpress adapter

FastReport 4 / FastReport VCL PDF eksportavimo filtras, kuris vietoj pačio FastReport įtaisyto PDF rašytuvo naudoja HotPDF kaip pagrindinį PDF variklį. Skirtas projektams, kurie jau įtraukia HotPDF ir nori vieno PDF pagrindo visai programai

 

Delphi deklaracija:

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;

 

Aprašas

TfrxHotPDFExport paveldi iš TfrxCustomExportFilter, todėl be jokių FastReport branduolio pakeitimų įsilieja į įprastą MyReport.Export(MyExportInstance) darbo eigą. Ši biblioteka kviečia RegisterComponents('FastReport 4.0 Export Filters', [TfrxHotPDFExport]), todėl po bibliotekos įtraukimo į paketą šis filtras atsiranda IDE komponentų paletėje

 

Užuot iš naujo įgyvendinęs visą FastReport PDF generatorių kiekvienam objektui, adapteris kiekvieną paruoštą puslapį nukreipia per HotPDF patobulinto metafailo importuotoją

 

1. Start sukuria naują THotPDF egzempliorių ir nustato dokumento metaduomenis (Title / Author / Subject / Keywords / PDFVersion / Compression)

2. StartPage nustato naujo HotPDF puslapio dydį taškais taip, kad jis atitiktų FastReport ataskaitos puslapio matmenis milimetrais

3. ExportObject nieko nedaro (visas puslapis užfiksuojamas FinishPage metu, o ne kiekvienam objektui atskirai)

4. FinishPage atvaizduoja paruoštą FastReport puslapį į TMetafile per Report.PreviewPages.DrawPage, tada paleidžia metafailą per HotPDF ShowEnhancedMetafile automatinio mastelio importuotoją

5. Finish iškviečia EndDoc ir, jei reikia, nukopijuoja laikiną PDF į kviestinės pusės pateiktą Stream

 

Savybės

Compressed - HotPDF srauto suspaudimas įjungtas (numatytoji reikšmė True). Nustatykite False diagnostiniams PDF (apie 5 kartus didesni failai)

Title / Author / Subject / Keywords - dokumento metaduomenys. Kai Title tuščias, adapteris pereina prie Report.Name, kad PDF visada turėtų netuščią pavadinimą

PDFVersion - PDF specifikacijos lygis, į kurį turi taikytis dokumentas. Numatytoji reikšmė yra pdf17

CompressionLevel - FlateDecode lygis. Numatytoji reikšmė yra clDefault

RenderDPI - pikselių tankis, naudojamas rasterizuojant FastReport puslapį per TMetafileCanvas. Didesnė reikšmė = ryškesnis tekstas ir linijos, bet didesnis metafailas ir PDF. 96 yra natyvus FastReport ekrano DPI; 200 (numatytoji reikšmė) duoda spausdinimo kokybės rezultatą be milžiniškų failų

 

Tipinė darbo eiga

 

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;

 

Išsaugomos galimybės

Vektorinį ir rastrinį puslapio turinį (tekstą, linijas, stačiakampius, užpildus, bitmapus), kurį pateikia standartinis FastReport maketo variklis. GDI išspręstas teksto eilutes (HotPDF įterpia Windows parinktus šriftus per įprastą HotPDF šriftų posubsetavimo kelią). Dokumento lygio metaduomenis

 

Metafailo tilto ribojimai

Kadangi puslapiai užfiksuojami kaip išplėstiniai metafailai, FastReport specifinės PDF funkcijos, kurioms reikia struktūrinės informacijos (AcroForm laukai, vardiniai tikslai, dokumento kontūrai, PDF/A arba PDF/X atitikties vartai), nėra perduodamos. Išvestis yra tikslus to, ką FastReport pateikia ekrane arba spausdintuve, vizualus atvaizdas, o ne struktūrinis PDF. Projektai, kuriems reikia AcroForm išvesties arba PDF/A atitikties, turėtų tiesiogiai naudoti HotPDF per jo vietinį API

 

Paketavimo pastaba

Adapteris yra Lib\Addons\FastReport4\ aplanke ir nėra pagrindinių HotPDF*.dpk paketų dalis, todėl FastReport priklausomybė įtraukiama tik projektuose, kurie sąmoningai renkasi šį adapterį. Šalia modulio yra smoke testas (smoke_frx_hotpdf.dpr)

 

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