|
dxHotPDFExportReportLink DevExpress ExpressPrinting System adapter (
|
FastReport adapter QuickReport adapter ReportBuilder device |
|
Adaptér exportu PDF pre DevExpress ExpressPrinting System (XtraPrinting / XtraReports / cxGrid printable links a podobne), ktorý používa HotPDF ako základný PDF backend namiesto vlastného emitera DevExpress dxPSExportToPDF / TdxPSPDFExport. Určené pre projekty, ktoré už HotPDF vkladajú a chcú jeden PDF backend naprieč celou aplikáciou
Options record: type TdxHotPDFExportOptions = record Title, Author, Subject, Keywords: string; PDFVersion : TPDFVersType; // default pdf17 Compression: TPDFCompressionLevel; // default clDefault RenderDPI : Integer; // default 200 end;
function dxHotPDFDefaultOptions: TdxHotPDFExportOptions;
File-based entry points: function dxHotPDFExportReportLinkToFile( AReportLink: TBasedxReportLink; const AOutputFileName: string; const AOptions: TdxHotPDFExportOptions): Boolean; overload; function dxHotPDFExportReportLinkToFile( AReportLink: TBasedxReportLink; const AOutputFileName: string): Boolean; overload;
Stream-based entry points: function dxHotPDFExportReportLinkToStream( AReportLink: TBasedxReportLink; AOutputStream: TStream; const AOptions: TdxHotPDFExportOptions): Boolean; overload; function dxHotPDFExportReportLinkToStream( AReportLink: TBasedxReportLink; AOutputStream: TStream): Boolean; overload;
Opis Tlačový systém DevExpressu je založený na TBasedxReportLink - abstraktnom prepojení, ktoré spája tlačiteľný komponent (cxGrid, cxRichEdit, cxScheduler, cxPivotGrid a podobne) s TdxComponentPrinter. Tlačiareň / link skladá strany a potom sprístupňuje chránenú metódu PaintPage(ACanvas, APageBounds, APageIndex, AContinuousIndex, AZoomFactor), ktorá vykreslí jednu stranu do ľubovoľného TCanvas
Tento adaptér kopíruje slučku v DevExpress
1. Volajúci zavolá dxHotPDFExportReportLinkToFile alebo dxHotPDFExportReportLinkToStream s pripraveným TBasedxReportLink 2. The adapter calls 3. Pre každý index strany si vypýta od linku RenderInfo.GetActualPageRenderInfo, vypočíta veľkosť strany v bodoch PDF (použitím vlastného pomeru PointsPerInch / UnitsPerInch od DevExpressu), vytvorí TMetafile v zvolenom render DPI a vykreslí stranu cez PaintPage(MetaCanvas, ...) 4. Pridá sa nová strana HotPDF alebo sa znovu použije automaticky vytvorená prvá strana, nastaví sa na vypočítané rozmery v bodoch a metafile sa prehrá cez ShowEnhancedMetafile 5. HotPDF.EndDoc zapíše PDF; pri streamových overloadoch sa potom do TStream poskytnutého volajúcim skopíruje dočasný súbor
Options Title / Author / Subject / Keywords - metadáta dokumentu. Keď je Title prázdny, adaptér sa vráti na AReportLink.ReportTitle.Text a potom na AReportLink.Name, takže PDF má vždy neprázdny názov PDFVersion - úroveň špecifikácie PDF, na ktorú má dokument cieliť. Predvolené je pdf17
RenderDPI - hustota pixelov použitá pri rasterizácii každej strany cez TMetafileCanvas. Vyššia hodnota znamená ostrejší text a čiary, ale väčší metafile a PDF. 200 (predvolené) dáva výsledky v kvalite na tlač bez obrovských súborov. Hodnoty ≤ 0 sa orežú na 200
Typical workflow
dxComponentPrinter1.CurrentLink := cxGridReportLink1; dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf');
Or with custom options:
Opts := dxHotPDFDefaultOptions; Opts.Title := 'Q1 Sales'; Opts.RenderDPI := 300; dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf', Opts);
Podporované rodiny odkazov Akýkoľvek potomok TBasedxReportLink. Sem patria cxGrid, cxRichEdit, cxScheduler, cxPivotGrid aj vlastné linky odvodené z tej istej základnej triedy. Adaptér nezávisí od konkrétneho typu linku, pretože kontrakt PaintPage je definovaný na báze
Capabilities preserved Vektorový aj rastrový obsah strán emitovaný všetkými rodinami DevExpress linkov (cxGrid, cxScheduler, cxRichEdit, cxPivotGrid, vlastné linky). Textové reťazce vyriešené cez GDI (DevExpress vykresľuje text cez TCanvas; metafile verne zaznamená volania GDI textu)
Limitations of the metafile bridge Keďže strany sa zachytávajú ako enhanced metafiles, funkcie PDF špecifické pre DevExpress, ktoré vyžadujú štrukturálne informácie (interaktívne polia AcroForm, pomenované ciele, záložky / osnovy, brány zhody PDF/A alebo PDF/X), sa neprenášajú. Výstup je verným vizuálnym zobrazením toho, čo DevExpress vykreslí, nie štruktúrované PDF
Packaging note Adaptér žije v
See also: TfrxHotPDFExport, TQRHotPDFExportFilter, TppHotPDFDevice, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support |