TQRHotPDFExportFilter

QuickReport-sovitin (Lib\Addons\QuickReport\qrHotPDFExport.pas)

FastReport adapter ReportBuilder device DevExpress adapter

QuickReport-vientisuodatin, joka käyttää HotPDF-kirjastoa taustalla olevana PDF-taustaohjelmana QuickReportin oman QRPDFFilter-suodattimen sijaan. Tarkoitettu projekteihin, joissa HotPDF on jo upotettuna ja halutaan yksi PDF-taustaohjelma koko sovellukseen

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;

Kuvaus

TQRHotPDFExportFilter periytyy luokasta TQRExportFilter, joten se sopii tavalliseen MyReport.ExportToFilter(MyExporterInstance) -työnkulkuun ilman mitään muutoksia QuickReport-ytimeen. Koska TQRExportFilter ei periydy luokasta TComponent (se on tavallinen luokka QuickReportin rakenteessa), IDE-komponenttirekisteröintiä ei ole - kutsujat luovat TQRHotPDFExportFilter-instanssin suoraan kutsulla Create('out.pdf')

QuickReport hahmontaa jokaisen valmistellun sivun TMetafile-tiedostoksi, joka välimuistitetaan kohteessa QRPrinter.PageList. Sen sijaan, että toteutettaisiin koko komponenttikohtainen TextOut- / AcceptGraphic- / AcceptBand-takaisinkutsujoukko, sovitin jättää ne huomiotta (tyhjätoimintoylikuormitukset) ja kerää sivukohtaiset metafilet kohdassa Finish:

1. Start(PaperWidth, PaperHeight, Font) – luo THotPDF-instanssin, asettaa metatiedot, kutsuu metodia BeginDoc ja tallentaa arvon (PaperWidth, PaperHeight), jotta metodi Finish voi muotoilla sivut oikein

2. NewPage / EndPage / TextOut / AcceptGraphic – ei toimenpiteitä (metafilessä on jo valmiiksi renderöity sisältö)

3. Finish – jokaista välimuistissa olevaa QRPrinter.PageList[i] -metafileä kohden lisää (tai käyttää uudelleen) HotPDF-sivun, joka on mitoitettu pisteinä arvoihin PaperWidth / PaperHeight, ja kutsuu metodia ShowEnhancedMetafile. Sen jälkeen suoritetaan EndDoc ja vapautus

Ominaisuudet

Title / Author / Subject / Keywords – dokumentin metatiedot. Kun Title on tyhjä, sovitin palaa arvoon Filename, joten PDF-dokumentilla on aina ei-tyhjä otsikko. Aseta ennen metodin ExportToFilter kutsumista

PDFVersion – PDF-määrityksen taso, johon dokumentin tulisi kohdistua. Oletusarvo on pdf17

Compressed – HotPDF-virtapakkaus päällä (oletus True). Aseta False diagnostiikka-PDF-tiedostoja varten

CompressionLevel – FlateDecode-taso. Oletusarvona on clDefault

SetOutputStream(AStream) – reitittää PDF-tavut kohteeseen AStream levylle kirjoittamisen sijaan. Kutsu ennen metodia ExportToFilter. Sisäisesti käytetään väliaikaistiedostoa, koska HotPDF tallentaa metodissa EndDoc; tavut striimataan takaisin metodissa 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

Vektori- ja rasterisivun sisältö, jonka QuickReportin standardi esikatselu- / tulostinputki hahmontaa. GDI-ratkaistut tekstijonot. Sivun koko noudattaa leveyttä PaperWidth ja korkeutta PaperHeight, jotka QuickReport välittää metodille Start

Metafile-sillan rajoitukset

Koska sivut kaapataan kehittyneinä metafileinä, QuickReport-kohtaisia PDF-ominaisuuksia, jotka vaativat rakennetietoa (AcroForm-kentät, nimetyt kohteet, jäsennykset, PDF/A- tai PDF/X-yhteensopivuusportit), ei välitetä eteenpäin. Tuloste on uskollinen visuaalinen kopio siitä, mitä QuickReport renderöi, ei rakenteellinen PDF

Packaging note

Sovitin sijaitsee polussa Lib\Addons\QuickReport\ eikä se kuulu HotPDF*.dpk-pääpaketteihin, joten QuickReport-riippuvuus tuodaan vain niihin projekteihin, jotka ottavat sovittimen käyttöön. Savutestaus (smoke_qr_hotpdf.dpr) sijaitsee yksikön rinnalla

Katso myös: TfrxHotPDFExport, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support