TppHotPDFDevice

ReportBuilder adapter (Lib\Addons\ReportBuilder\ppHotPDFDevice.pas)

 

FastReport adapter  QuickReport adapter  DevExpress adapter

ReportBuilder enhedsklasse, der bruger HotPDF som den underliggende PDF-backend i stedet for ReportBuilders egenppPDFDevice. Beregnet til projekter, der allerede indlejrer HotPDF og ønsker en enkelt PDF-backend på tværs af hele applikationen

 

Delphi deklaration:

type

TppHotPDFDevice =class(TppGraphicsDevice)

  public

    class function DeviceName: String;override;

    procedure StartJob; override;

    procedure EndJob; override;

    procedure CancelJob; override;

    procedure SetOutputStream(AStream: TStream);

    property FileName: string;

    property Title, Author, Subject, Keywords: string;

    property PDFVersion: TPDFVersType;

    property Compressed: Boolean;

    property CompressionLevel: TPDFCompressionLevel;

  end;

 

Beskrivelse

TppHotPDFDevice stammer fraTppGraphicsDevice(ét niveau overTppCustomScreenDevice / TppImageDevice), så den passer ind i ReportBuilders enhedskæde, når den tildeles tilTppReport.PrinterDeviceeller bruges som en udgiverenhed på enTppPublisher. DeviceNamerapporteres som'HotPDF'. Fordi enhedsregistrering i ReportBuilder sker viappRptDeviceMapsnarere endRegisterComponents, er der ingen IDE-komponentpaletindgang - kaldere instansiererTppHotPDFDevice directly

 

Hver side, der kommer igennemTppGraphicsDevice.ReceivePagetegnes på en midlertidigTMetafileCanvas(oprettet iBeforeRenderPage, færdiggjort iAfterRenderPage). Den fangedeTMetafileindfødes derefter til HotPDFsShowEnhancedMetafileauto-skalerende importør:

 

1. StartJobopretterTHotPDFinstansen, indstiller metadata og kalderBeginDoc.

2. BeforeRenderPageopretter enTMetafiledimensioneret tilspWidth x spHeightplus enTMetafileCanvas, og indstiller den som den nedarvedeCanvas.

3. RenderPage(nedarvet) gennemgårDrawCommandsog dirigerer dem viaGraphicsContextover på vores metafil-canvas

4. AfterRenderPagefærdiggør metafilen (frigør canvas), tilføjer en ny HotPDF-side dimensioneret tilmmWidth x mmHeight(konverteret til PDF-punkter), og afspiller metafilen viaShowEnhancedMetafile.

5. EndJob calls HotPDF.EndDoc; hvis outputtet er en Stream, kopieres bytes fra den midlertidige fil skrevet internt

 

Egenskaber

FileName- mål-PDF-sti. Bruges, medmindreSetOutputStreamhar installeret en strøm

Title / Author / Subject / Keywords- dokument-metadata. Når Title er tom, falder enheden tilbage påFileName, så PDF'en altid har en ikke-tom titel

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

Compressed- HotPDF-strømkomprimering slået til (standard True). Sæt til False for diagnostiske PDF'er

CompressionLevel- FlateDecode niveau. Standard erclDefault.

SetOutputStream(AStream)- diriger PDF-bytes ind iAStreami stedet for at skrive til disk. Kald før rapporten kørerStartJob.

 

Typisk arbejdsgang

 

Dev := TppHotPDFDevice.Create(nil);

try

Dev.FileName := 'Report.pdf';

Dev.Title := 'Monthly Statement';

Dev.PDFVersion := pdf17;

ppReport1.DeviceType := 'HotPDF';

ppReport1.PrinterDevice := Dev;

ppReport1.Print;

finally

Dev.Free;

end;

 

Funktionsevner bevaret

Vektor- og raster-sideindhold gengivet af ReportBuilders standard tegnekommando-pipeline. GDI-løste tekststrenge. Standard 200 DPI metafil-fangst (konfigurerbar via den nedarvedePixelsPerInch) giver print-kvalitet output uden enorme filer

 

Begrænsninger ved metafil-broen

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

 

Enheden findes i

og er ikke en del af de primæreLib\Addons\ReportBuilder\pakker, så ReportBuilder-afhængigheden trækkes kun ind af projekter, der tilmelder sig enheden. En test (HotPDF*.dpkpakker, så ReportBuilder-afhængigheden kun trækkes ind af projekter, der tilmelder sig enheden. En smoke-test (smoke_pp_hotpdf.dpr) lever sammen med enheden

 

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