|
TQRHotPDFExportFilter QuickReport adapter (
|
FastReport adapter ReportBuilder device DevExpress adapter |
|
QuickReport export filter koji koristi HotPDF kao osnovni PDF backend umesto QuickReport-ovog sopstvenog QRPDFFilter-a Namenjen je projektima koji već ugrađuju HotPDF i žele jedan PDF backend kroz celu aplikaciju
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 nasleđuje TQRExportFilter, tako da se uklapa u uobičajeni MyReport.ExportToFilter(MyExporterInstance) tok rada bez ikakvih promena u QuickReport jezgru Pošto TQRExportFilter nije TComponent potomak (već obična klasa u QuickReport dizajnu), nema IDE registracije komponente - pozivaoci instanciraju TQRHotPDFExportFilter direktno preko Create('out.pdf')
QuickReport renderuje svaku pripremljenu stranicu u TMetafile keširan u QRPrinter.PageList Umesto da ponovo implementira ceo per-component TextOut / AcceptGraphic / AcceptBand skup callback-ova, adapter ih ignoriše (no-op overrides) i preuzima metafajlove po stranici u Finish:
1. Start(PaperWidth, PaperHeight, Font) - kreira THotPDF instancu, podešava metapodatke, poziva BeginDoc i čuva (PaperWidth, PaperHeight) tako da Finish može ispravno da oblikuje stranice 2. 3. Finish - za svaki keširani QRPrinter.PageList[i] metafile, dodaje (ili ponovo koristi) HotPDF stranicu veličine PaperWidth / PaperHeight u point-ovima i poziva ShowEnhancedMetafile Zatim EndDoc i oslobađanje
Svojstva Title / Author / Subject / Keywords - metapodaci dokumenta Kada je Title prazan, adapter se vraća na Filename tako da PDF uvek ima ne-prazan title Podesiti pre nego što se pozove ExportToFilter
Compressed - HotPDF kompresija strima je uključena (podrazumevano True) Postavite False za dijagnostičke PDF-ove
SetOutputStream(AStream) - usmerava PDF bajtove u AStream umesto da ih zapisuje na disk Pozvati pre ExportToFilter Interno se koristi privremeni fajl zato što HotPDF čuva pri EndDoc; bajtovi se vraćaju kroz tok u Finish
Typical workflow
Filter := TQRHotPDFExportFilter.Create('Report.pdf'); try Filter.Title := 'Monthly Statement'; Filter.PDFVersion := pdf17; QuickRep1.ExportToFilter(Filter); finally Filter.Free; end;
Capabilities preserved Vektorski i raster sadržaj stranice renderovan kroz QuickReport-ov standardni preview / printer pipeline GDI-rešeni tekstualni stringovi Veličina stranice prati PaperWidth / PaperHeight koje QuickReport prosleđuje u Start
Limitations of the metafile bridge Pošto su stranice snimljene kao enhanced metafajlovi, QuickReport-specifične PDF funkcije koje zahtevaju strukturne informacije (AcroForm polja, imenovane destinacije, outline-i, PDF/A ili PDF/X usklađenost gate-ovi) se ne prenose. Izlaz je verna vizuelna reprodukcija onoga što QuickReport renderuje, ne strukturirani PDF
Packaging note Adapter se nalazi u
See also: TfrxHotPDFExport, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support |