|
TQRHotPDFExportFilter QuickReport adapter (
|
FastReport adapter ReportBuilder device DevExpress adapter |
|
Exportný filter QuickReportu, ktorý používa HotPDF ako základný PDF backend namiesto vlastného QRPDFFilter QuickReportu. Určený pre projekty, ktoré už HotPDF vkladajú a chcú jeden PDF backend naprieč celou aplikáciou
Delphi declaration: type TQRHotPDFExportFilter = class(TQRExportFilter) public constructor Create(Filename: string); override; procedure SetOutputStream(AStream: TStream); property Title, Author, Subject, Keywords: string; property PDFVersion: TPDFVersType; property Compressed: Boolean; property CompressionLevel: TPDFCompressionLevel; end;
Opis TQRHotPDFExportFilter dedí z TQRExportFilter, takže sa bez zmien jadra QuickReportu zapojí do bežného workflow MyReport.ExportToFilter(MyExporterInstance). Keďže TQRExportFilter nie je potomok TComponent (v návrhu QuickReportu je to obyčajná trieda), neexistuje registrácia komponentov IDE - volajúci vytvárajú TQRHotPDFExportFilter priamo cez Create('out.pdf')
QuickReport vykresľuje každú pripravenú stranu do TMetafile uloženého v QRPrinter.PageList. Namiesto opätovnej implementácie celého súboru callbackov TextOut / AcceptGraphic / AcceptBand pre jednotlivé komponenty adaptér tieto volania ignoruje (no-op override) a v Finish zbiera metafiles pre jednotlivé strany
1. Start(PaperWidth, PaperHeight, Font) - vytvorí inštanciu THotPDF, nastaví metadáta, zavolá BeginDoc a uloží PaperWidth, PaperHeight, aby Finish vedel správne prispôsobiť strany 2. 3. Finish - pre každý uložený metafile QRPrinter.PageList[i] pridá alebo znovu použije stranu HotPDF s rozmermi PaperWidth / PaperHeight v bodoch a zavolá ShowEnhancedMetafile. Potom EndDoc a uvoľnenie
Vlastnosti Title / Author / Subject / Keywords - metadáta dokumentu. Keď je Title prázdny, adaptér sa vráti na Filename, takže PDF má vždy neprázdny názov. Nastavte pred zavolaním ExportToFilter
Compressed - zapína kompresiu prúdu HotPDF (predvolene True). Nastavte False pre diagnostické PDF
SetOutputStream(AStream) - nasmeruje bajty PDF do AStream namiesto zápisu na disk. Zavolajte pred ExportToFilter. Vo vnútri sa používa dočasný súbor, pretože HotPDF ukladá až pri EndDoc; bajty sa v Finish streamujú späť
Typical workflow
Filter := TQRHotPDFExportFilter.Create('Report.pdf'); try Filter.Title := 'Monthly Statement'; Filter.PDFVersion := pdf17; QuickRep1.ExportToFilter(Filter); finally Filter.Free; end;
Capabilities preserved Vektorový aj rastrový obsah strany vykreslený štandardným preview / printer pipeline QuickReportu. Textové reťazce vyriešené cez GDI. Veľkosť strán sa riadi PaperWidth / PaperHeight odovzdanými do Start z QuickReportu
Limitations of the metafile bridge Keďže strany sa zachytávajú ako enhanced metafiles, funkcie PDF špecifické pre QuickReport, ktoré vyžadujú štrukturálne informácie (polia AcroForm, pomenované ciele, osnovy, brány zhody PDF/A alebo PDF/X), sa neprenášajú. Výstup je verným vizuálnym zobrazením toho, čo QuickReport vykreslí, nie štruktúrované PDF
Packaging note Adaptér žije v
See also: TfrxHotPDFExport, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support |