dxHotPDFExportReportLink

DevExpress ExpressPrinting System adapter (Lib\Addons\DevExpress\dxHotPDFExport.pas)

 

FastReport adapter  QuickReport adapter  ReportBuilder device

DevExpress ExpressPrinting System (XtraPrinting / XtraReports / cxGrid printable links / og lignende) PDF-eksportadapter, der bruger HotPDF som den underliggende PDF-backend i stedet for DevExpress' egendxPSExportToPDF / TdxPSPDFExportemitter. Beregnet til projekter, der allerede indlejrer HotPDF og ønsker en enkelt PDF-backend på tværs af hele applikationen

 

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;

 

Filbaserede indgangspunkter:

function dxHotPDFExportReportLinkToFile(

AReportLink: TBasedxReportLink;

  const AOutputFileName: string;

  const AOptions: TdxHotPDFExportOptions): Boolean;overload;

function dxHotPDFExportReportLinkToFile(

AReportLink: TBasedxReportLink;

  const AOutputFileName: string): Boolean;overload;

 

Strømbaserede indgangspunkter:

function dxHotPDFExportReportLinkToStream(

AReportLink: TBasedxReportLink;

AOutputStream: TStream;

  const AOptions: TdxHotPDFExportOptions): Boolean;overload;

function dxHotPDFExportReportLinkToStream(

AReportLink: TBasedxReportLink;

AOutputStream: TStream): Boolean;overload;

 

Beskrivelse

DevExpress' printsystem centrerer sig omTBasedxReportLink- det abstrakte link, der forbinder en printbar komponent (cxGrid, cxRichEdit, cxScheduler, cxPivotGrid og lignende) til enTdxComponentPrinter. Printeren / linket sammensætter sider og blotlægger derefter en beskyttetPaintPage(ACanvas, APageBounds, APageIndex, AContinuousIndex, AZoomFactor)metode, der tegner en enkelt side til en hvilken som helstTCanvas.

 

Denne adapter afspejler løkken i DevExpress' egenTdxPSPDFReportExportProvider.Build, men i stedet for at dirigerePaintPages output ind i et DevExpress PDF-canvas, dirigerer den det ind i enTMetafileCanvas. Den resulterende metafil indfødes derefter til HotPDFsShowEnhancedMetafileauto-skalerende importør:

 

1. Kalderen påkalderdxHotPDFExportReportLinkToFile or dxHotPDFExportReportLinkToStreammed den forberedteTBasedxReportLink.

2. Adapteren kalderAReportLink.RebuildReportfor at sammensætte sider

3. For hvert sideindeks beder den linket omRenderInfo.GetActualPageRenderInfo, beregner sidestørrelsen i PDF-punkter (ved brug af DevExpress' egetPointsPerInch / UnitsPerInchforhold), bygger enTMetafileved den valgte gengivelses-DPI, og gengiver siden viaPaintPage(MetaCanvas, ...).

4. En ny HotPDF-side tilføjes (eller den automatisk oprettede første side genbruges), dimensioneret to de beregnede punktdimensioner, og metafilen afspilles viaShowEnhancedMetafile.

5. HotPDF.EndDocskriver PDF'en; for strømoverloads kopieres temp-filen derefter ind i den kalder-leveredeTStream.

 

Options

Title / Author / Subject / Keywords- dokument-metadata. Når Title er tom, falder adapteren tilbage påAReportLink.ReportTitle.Text, derefter påAReportLink.Name, så PDF'en altid har en ikke-tom titel

PDFVersion- det PDF-specifikationsniveau, dokumentet skal rette sig mod. Standard erpdf17.

Compression- FlateDecode niveau. Standard erclDefault.

RenderDPI- pixeltæthed brugt ved rasterisering af hver side viaTMetafileCanvas. Højere = skarpere tekst og linjer, men større metafil og PDF. 200 (standard) giver resultater i printkvalitet uden enorme filer. Værdier ≤ 0 fastspændes til 200

 

Typisk arbejdsgang

 

dxComponentPrinter1.CurrentLink := cxGridReportLink1;

dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf');

 

Or med brugerdefinerede indstillinger:

 

Opts := dxHotPDFDefaultOptions;

Opts.Title := 'Q1 Sales';

Opts.RenderDPI := 300;

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

 

Understøttede link-familier

Enhver efterkommer afTBasedxReportLink. Dette dækker cxGrid, cxRichEdit, cxScheduler, cxPivotGrid samt alle brugerdefinerede links afledt af samme basisklasse. Adapteren afhænger ikke af den specifikke linktype, fordiPaintPagekontrakten er defineret på basen

 

Funktionsevner bevaret

Vektor- og raster-sideindhold udsendt af enhver DevExpress link-familie (cxGrid, cxScheduler, cxRichEdit, cxPivotGrid, brugerdefinerede links). GDI-løste tekststrenge (DevExpress gengiver tekst viaTCanvas; metafilen registrerer trofast GDI-tekstkaldene)

 

Begrænsninger ved metafil-broen

Da sider fanges som forbedrede metafiler, udbredes DevExpress-specifikke PDF-funktioner, der kræver strukturel information (interaktive AcroForm-felter, navngivne destinationer, bogmærker / dispositioner, PDF/A- eller PDF/X-overensstemmelsesporte), ikke. Outputtet er en trofast visuel gengivelse af, hvad DevExpress gengiver, ikke en struktureret PDF

 

Emballeringsnote

Adapteren findes iLib\Addons\DevExpress\og er ikke en del af de primæreHotPDF*.dpkpakker, så DevExpress ExpressPrinting-afhængigheden trækkes kun ind af projekter, der tilmelder sig adapteren. En test (smoke_dx_hotpdf.dpr) lever sammen med enheden

 

Se også: TfrxHotPDFExport, TQRHotPDFExportFilter, TppHotPDFDevice, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support