dxHotPDFExportReportLink

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

 

FastReport adapter QuickReport adapter ReportBuilder eszköz

DevExpress ExpressPrinting System (XtraPrinting / XtraReports / cxGrid nyomtatható linkek / és hasonlók) PDF export adapter, amely a HotPDF-et használja alapul szolgáló PDF háttérrendszerként a DevExpress saját dxPSExportToPDF / TdxPSPDFExport kibocsátója helyett. Olyan projektekhez készült, amelyek már beágyazzák a HotPDF-et, és egyetlen PDF háttérrendszert szeretnének a teljes alkalmazásban

 

Beállítások rekord:

type

TdxHotPDFExportOptions = record

Title, Author, Subject, Keywords: string;

PDFVersion : TPDFVersType; // default pdf17

Compression: TPDFCompressionLevel; // default clDefault

RenderDPI : Integer; // default 200

end;

 

function dxHotPDFDefaultOptions: TdxHotPDFExportOptions;

 

Fájlalapú belépési pontok:

function dxHotPDFExportReportLinkToFile(

AReportLink: TBasedxReportLink;

const AOutputFileName: string;

const AOptions: TdxHotPDFExportOptions): Boolean; overload;

const AOutputFileName: string): Boolean; overload;

Folyamalapú belépési pontok:

function dxHotPDFExportReportLinkToStream(

 

AOutputStream: TStream;

AOutputStream: TStream): Boolean; overload;

Leírás

A DevExpress nyomtatási rendszere a TBasedxReportLink osztályra épül – ez az absztrakt link köti össze a nyomtatható komponenst (cxGrid, cxRichEdit, cxScheduler, cxPivotGrid és hasonlók) a TdxComponentPrinter egységgel. A nyomtató / link összeállítja az oldalakat, majd elérhetővé tesz egy védett PaintPage(ACanvas, APageBounds, APageIndex, AContinuousIndex, AZoomFactor) metódust, amely egyetlen oldalt rajzol ki bármely TCanvas felületre

Ez az adapter tükrözi a DevExpress saját TdxPSPDFReportExportProvider.Build metódusának ciklusát, de ahelyett, hogy a PaintPage kimenetét DevExpress PDF canvasba irányítaná, TMetafileCanvasba vezeti. Az így kapott metafile ezután a HotPDF ShowEnhancedMetafile automatikusan skálázódó importőrébe kerül

1. A hívó meghívja a dxHotPDFExportReportLinkToFile vagy a dxHotPDFExportReportLinkToStream metódust az előkészített TBasedxReportLink objektummal

2. Az adapter meghívja az AReportLink.RebuildReport metódust az oldalak összeállításához

3. Minden egyes oldalindexhez lekéri a linktől a RenderInfo.GetActualPageRenderInfo értéket, kiszámítja az oldalméretet PDF pontokban (a DevExpress saját PointsPerInch / UnitsPerInch arányát használva), felépít egy TMetafile-t a választott renderelési DPI-vel, és lerendereli az oldalt a PaintPage(MetaCanvas, ...) metóduson keresztül

 

4. Egy új HotPDF oldal kerül hozzáadásra (vagy az automatikusan létrehozott első oldal kerül újrahasznosításra), a kiszámított pontméretekre skálázva, és a metafile lejátszásra kerül a ShowEnhancedMetafile metóduson keresztül

5. A HotPDF.EndDoc kiírja a PDF-et; a folyam-túlterhelések (stream overload) esetén az ideiglenes fájl másolásra kerül a hívó által megadott TStream-be

 

Beállítások

 

Title / Author / Subject / Keywords - dokumentum metaadatok. Ha a Title üres, az adapter visszaesik az AReportLink.ReportTitle.Text, majd az AReportLink.Name értékre, így a PDF mindig nem üres címmel rendelkezik

PDFVersion - a PDF specifikációs szint, amelyet a dokumentumnak meg kell céloznia. Alapértelmezés szerint pdf17

Compression - FlateDecode tömörítési szint. Alapértelmezés szerint clDefault

RenderDPI - a képpontsűrűség, amely az egyes oldalak TMetafileCanvas-en keresztül történő raszterizálásakor használatos. Magasabb = élesebb szöveg és vonalak, de nagyobb metafile és PDF. A 200 (alapértelmezett) nyomtatási minőségű eredményt ad hatalmas fájlok nélkül. A legfeljebb 0 értékek 200-ra lesznek korlátozva

Tipikus munkafolyamat

 

dxComponentPrinter1.CurrentLink := cxGridReportLink1;

dxHotPDFExportReportLinkToFile(cxGridReportLink1, 'Grid.pdf');

Vagy egyedi beállításokkal:

Opts := dxHotPDFDefaultOptions;

Opts.Title := 'Q1 Sales';

 

Opts.RenderDPI := 300;

 

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

Támogatott linkcsaládok

 

Bármely TBasedxReportLink leszármazott. Ez lefedi a cxGrid, cxRichEdit, cxScheduler, cxPivotGrid komponenseket, valamint az ugyanabból az alaposztályból származó egyedi linkeket. Az adapter nem függ a konkrét linktípustól, mert a PaintPage szerződés az alapon van definiálva

 

Megőrzött képességek

Vektoros és raszteres oldaltartalom, amelyet minden DevExpress linkcsalád kibocsát (cxGrid, cxScheduler, cxRichEdit, cxPivotGrid, egyedi linkek). GDI-feloldott szöveges karakterláncok (a DevExpress a szöveget TCanvas-en keresztül rendereli; a metafile hűen rögzíti a GDI szöveghívásokat)

A metafile-híd korlátai

Mivel az oldalak továbbfejlesztett metafile-ként (enhanced metafile) kerülnek rögzítésre, a strukturális információkat igénylő DevExpress-specifikus PDF funkciók (interaktív AcroForm mezők, nevesített célhelyek, könyvjelzők / vázlatok, PDF/A vagy PDF/X megfelelőségi kapuk) nem terjednek át. A kimenet a DevExpress által renderelt kép hű vizuális reprodukciója, nem pedig egy strukturált PDF

 

Csomagolási megjegyzés

Az adapter a Lib\Addons\DevExpress\ könyvtárban található, és nem része a fő HotPDF*.dpk csomagoknak, így a DevExpress ExpressPrinting függőség csak azon projektek által kerül behúzásra, amelyek használják az adaptert. Egy smoke teszt (smoke_dx_hotpdf.dpr) található az egység mellett

 

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

Vektoros és raszteres oldaltartalom minden DevExpress linkcsaládból (cxGrid, cxScheduler, cxRichEdit, cxPivotGrid, egyéni linkek). GDI által feloldott szövegkarakterláncok is szerepelnek, mivel a DevExpress TCanvas segítségével rendereli a szöveget, a metafile pedig hűen rögzíti a GDI szöveghívásokat

 

Limitations of the metafile bridge

Mivel az oldalak enhanced metafile formában kerülnek rögzítésre, a strukturális információt igénylő DevExpress-specifikus PDF-funkciók (interaktív AcroForm mezők, named destinations, könyvjelzők / outlines, PDF/A vagy PDF/X megfelelőségi kapuk) nem kerülnek át. A kimenet hű vizuális reprodukciója annak, amit a DevExpress renderel, nem strukturált PDF

 

Packaging note

Az adapter a Lib\Addons\DevExpress\ alatt található, és nem része a fő HotPDF*.dpk csomagoknak, ezért a DevExpress ExpressPrinting függőség csak azoknál a projekteknél jelenik meg, amelyek kifejezetten használják az adaptert. Egy smoke test (smoke_dx_hotpdf.dpr) az unit mellett található

 

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