dxHotPDFExportReportLink

DevExpress ExpressPrinting System -sovitin (Lib\Addons\DevExpress\dxHotPDFExport.pas)

FastReport adapter QuickReport adapter ReportBuilder device

DevExpress ExpressPrinting System (XtraPrinting / XtraReports / cxGrid tulostettavat linkit / ja vastaavat) PDF-vientisovituskappale, joka käyttää HotPDF:ää taustalla olevana PDF-taustaohjelmana DevExpressin oman dxPSExportToPDF / TdxPSPDFExport -lähettimen sijaan. Tarkoitettu projekteihin, joissa HotPDF on jo upotettuna ja halutaan yksi PDF-taustaohjelma koko sovellukseen

Options record:

type

TdxHotPDFExportOptions = record

Title, Author, Subject, Keywords: string;

PDFVersion : TPDFVersType; // default pdf17

Compression: TPDFCompressionLevel; // default clDefault

RenderDPI : Integer; // default 200

end;

function dxHotPDFDefaultOptions: TdxHotPDFExportOptions;

File-based entry points:

function dxHotPDFExportReportLinkToFile(

AReportLink: TBasedxReportLink;

const AOutputFileName: string;

const AOptions: TdxHotPDFExportOptions): Boolean; overload;

function dxHotPDFExportReportLinkToFile(

AReportLink: TBasedxReportLink;

const AOutputFileName: string): Boolean; overload;

Stream-based entry points:

function dxHotPDFExportReportLinkToStream(

AReportLink: TBasedxReportLink;

AOutputStream: TStream;

const AOptions: TdxHotPDFExportOptions): Boolean; overload;

function dxHotPDFExportReportLinkToStream(

AReportLink: TBasedxReportLink;

AOutputStream: TStream): Boolean; overload;

Kuvaus

DevExpress-tulostusjärjestelmä keskittyy luokkaan TBasedxReportLink – abstraktiin linkkiin, joka yhdistää tulostettavan komponentin (cxGrid, cxRichEdit, cxScheduler, cxPivotGrid ja vastaavat) TdxComponentPrinter-tulostimeen. Tulostin / linkki koostaa sivut ja tuo sitten esille suojatun metodin PaintPage(ACanvas, APageBounds, APageIndex, AContinuousIndex, AZoomFactor), joka piirtää yksittäisen sivun mille tahansa TCanvas-kankaalle

Tämä sovitin peilaa silmukkaa DevExpressin omassa metodissa TdxPSPDFReportExportProvider.Build, mutta sen sijaan, että se ohjaisi metodin PaintPage tulosteen DevExpressin PDF-kankaalle, se ohjaa sen kohteeseen TMetafileCanvas. Tuloksena oleva metafile syötetään sitten HotPDF:n automaattisesti skaalaavaan ShowEnhancedMetafile-tuojaan:

1. Kutsuja suorittaa metodin dxHotPDFExportReportLinkToFile tai dxHotPDFExportReportLinkToStream valmistellun TBasedxReportLink-objektin kanssa

2. Sovitin kutsuu metodia AReportLink.RebuildReport sivujen koostamiseksi

3. Jokaista sivuindeksiä kohden se pyytää linkiltä tietoa RenderInfo.GetActualPageRenderInfo, laskee sivukoon PDF-pisteinä (käyttäen DevExpressin omaa suhdetta PointsPerInch / UnitsPerInch), rakentaa TMetafile-objektin valitulla renderöinti-DPI:llä ja renderöi sivun metodin PaintPage(MetaCanvas, ...) kautta

4. Uusi HotPDF-sivu lisätään (tai automaattisesti luotu ensimmäinen sivu käytetään uudelleen), mitoitetaan laskettujen pistemittojen mukaan ja metafile toistetaan metodilla ShowEnhancedMetafile

5. HotPDF.EndDoc kirjoittaa PDF-tiedoston; virran ylikuormitusmetodeille väliaikaistiedosto kopioidaan sen jälkeen kutsujan toimittamaan TStream-olioon

Options

Title / Author / Subject / Keywords – dokumentin metatiedot. Kun Title on tyhjä, sovitin palaa arvoon AReportLink.ReportTitle.Text ja sen jälkeen arvoon AReportLink.Name, joten PDF-dokumentilla on aina ei-tyhjä otsikko

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

Compression – FlateDecode-taso. Oletusarvona on clDefault

RenderDPI – pikselitiheys, jota käytetään rasteroitaessa kutakin sivua TMetafileCanvas-kankaan kautta. Suurempi arvo = terävämpi teksti ja viivat, mutta suurempi metafile ja PDF. Arvo 200 (oletus) antaa tulostuslaatuun verrattavia tuloksia ilman valtavia tiedostokokoja. Arvot ≤ 0 pakotetaan arvoon 200

Typical workflow

dxComponentPrinter1.CurrentLink := cxGridReportLink1;

dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf');

Tai mukautetuilla valinnoilla:

Opts := dxHotPDFDefaultOptions;

Opts.Title := 'Q1 Sales';

Opts.RenderDPI := 300;

dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf', Opts);

Tuetut linkkiryhmät

Mikä tahansa luokan TBasedxReportLink jälkeläinen. Tämä kattaa luokat cxGrid, cxRichEdit, cxScheduler, cxPivotGrid sekä kaikki muut mukautetut linkit, jotka periytyvät samasta kantaluokasta. Sovitin ei riipu tietystä linkityypistä, koska PaintPage-sopimus on määritelty kantaluokassa

Capabilities preserved

Vektori- ja rasterisivun sisältö, jonka kukin DevExpress-linkkiperhe (cxGrid, cxScheduler, cxRichEdit, cxPivotGrid, mukautetut linkit) luo. GDI-ratkaistut tekstijonot (DevExpress hahmontaa tekstin luokan TCanvas kautta; metafile tallentaa GDI-tekstikutsut uskollisesti)

Metafile-sillan rajoitukset

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

Packaging note

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

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