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 aplikacijuQRPDFFilter. Namena: projekti koji već ugrađuju HotPDF i žele jedan PDF backend u celoj aplikaciji.

  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).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.TextOut / AcceptGraphic / AcceptBand set callback-ova, adapter ih ignoriše (no-op pregazaće) i požnjeve metafajlove po stranici u Finish:

 

1. Start(PaperWidth, PaperHeight, Font) - napravi THotPDF instancu, postavi metapodatke, pozovi BeginDoc, i sačuvaj (PaperWidth, PaperHeight) so Finish može ispravno oblikovati stranice.

2. NewPage / EndPage / TextOut / AcceptGraphic - no-op (metafajl već sadrži renderovani sadržaj).

3. Finish - za svaki keširani QRPrinter.PageList[i] metafajl, dodaj (ili ponovo koristi) HotPDF stranicu dimenzionisanu na PaperWidth / PaperHeight u tačkama i pozovi ShowEnhancedMetafile. Zatim EndDoc i otpusti.

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 workflowTitle / Author / Subject / Keywords - metapodaci dokumenta. Kada je Title prazan, adapter se vraća na Filename tako da PDF uvek ima neprazan naslov. Postavi pre ExportToFilter se poziva.

 PDFVersion - nivo PDF specifikacije koji dokument treba da cilja. Podrazumevano pdf17.

Filter := TQRHotPDFExportFilter.Create('Report.pdf');PDFACompliance i PDFXCompliance - prosleđuju HotPDF kapije usaglašenosti standardima u generisani PDF izveštaja. Pozivaoci i dalje sami pripremaju svaki potreban ICC profil, OutputIntent, označavanje ili prepress resurse kroz normalan HotPDF tok rada pre oslanjanja na konačnu tvrdnju o usaglašenosti.

tryCompressed - HotPDF kompresija toka uključena (podrazumevano True). Postavite False za dijagnostičke PDF-ove.

CompressionLevel - nivo FlateDecode. Podrazumevano clDefault.

SetOutputStream(AStream) - usmeri PDF bajtove u AStream umesto pisanja na disk. Pozovi pre ExportToFilter. Interno se koristi privremena datoteka jer HotPDF čuva na EndDoc; bajtovi se vraćaju tokom u Finish.

  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

Pošto se stranice hvataju kao enhanced metafajlovi, QuickReport-specifične PDF funkcije kojima treba strukturna informacija (AcroForm polja, imenovana odredišta i nacrti) se ne prenose. PDF/A i PDF/X kapije se prosleđuju HotPDF-u, ali resursi specifični za standard poput OutputIntent profila ostaju odgovornost pozivaoca. Izlaz je veran vizuelni prikaz onoga što QuickReport renderuje, a ne strukturni PDF.

 

Napomena o pakovanju

Adapter živi u Lib\Addons\QuickReport\ i nije deo glavnih HotPDF*.dpk paketa, tako da QuickReport zavisnost povlače samo projekti koji se opredele za adapter. Smoke test (smoke_qr_hotpdf.dpr) živi uz jedinicu.

 

See also: TfrxHotPDFExport, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Poboljšana EMF/WMF podrška