TQRHotPDFExportFilter

QuickReport adapter (Lib\Addons\QuickReport\qrHotPDFExport.pas)

 

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. NewPage / EndPage / TextOut / AcceptGraphic - no-op (the metafile already has the rendered content).

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

PDFVersion - PDF specification level the document should target. Defaults to pdf17.

Compressed - HotPDF kompresija strima je uključena (podrazumevano True) Postavite False za dijagnostičke PDF-ove

CompressionLevel - FlateDecode level. Defaults to clDefault.

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 Lib\Addons\QuickReport\ i nije deo glavnih HotPDF*.dpk paketa, pa se zavisnost QuickReport učitava samo u projektima koji se opredele za adapter. Smoke test (smoke_qr_hotpdf.dpr) nalazi se uz jedinicu

 

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