TQRHotPDFExportFilter

QuickReport adapter (Lib\Addons\QuickReport\qrHotPDFExport.pas)

 

FastReport adapter  QuickReport adapter  DevExpress adapter

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

 

Delphi deklaration:

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;

 

Beskrivelse

TQRHotPDFExportFilter stammer fraTQRExportFilter, så den passer ind i det almindeligeMyReport.ExportToFilter(MyExporterInstance)arbejdsforløb uden nogen ændringer i QuickReport-kernen. FordiTQRExportFilterikke er enTComponentefterkommer (det er en almindelig klasse i QuickReports design), er der ingen IDE-komponentregistrering - kaldere instansiererTQRHotPDFExportFilterdirekte viaCreate('out.pdf').

 

QuickReport gengiver hver forberedt side i enTMetafilecachet iQRPrinter.PageList. I stedet for at genimplementere hele pr.-komponentTextOut / AcceptGraphic / AcceptBandcallback-sættet, ignorerer adapteren disse (no-op overrides) og indsamler pr.-side metafilerne iFinish:

 

1. Start(PaperWidth, PaperHeight, Font)- opretTHotPDFinstansen, indstil metadata, kaldBeginDoc, og gem(PaperWidth, PaperHeight) so Finishkan forme sider korrekt

2. NewPage / EndPage / TextOut / AcceptGraphic- no-op (metafilen har allerede det gengivne indhold)

3. Finish- for hver cachelagretQRPrinter.PageList[i]metafil, tilføj (eller genbrug) en HotPDF-side dimensioneret tilPaperWidth / PaperHeighti punkter og kaldShowEnhancedMetafile. Then EndDocog frigiv

 

Egenskaber

Title / Author / Subject / Keywords- dokument-metadata. Når Title er tom, falder adapteren tilbage påFilename, så PDF'en altid har en ikke-tom titel. Indstil førExportToFilterkaldes

PDFVersion- 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ørExportToFilter. Internt bruges en midlertidig fil, fordi HotPDF gemmer påEndDoc; bytes streames tilbage iFinish.

 

Typisk arbejdsgang

 

Filter := TQRHotPDFExportFilter.Create('Report.pdf');

try

Filter.Title := 'Monthly Statement';

Filter.PDFVersion := pdf17;

QuickRep1.ExportToFilter(Filter);

finally

Filter.Free;

end;

 

Funktionsevner bevaret

Vektor- og raster-sideindhold gengivet av QuickReports standard preview- / printer-pipeline. GDI-løste tekststrenge. Sidedimensionering følgerPaperWidth / PaperHeightleveret tilStartaf QuickReport

 

Begrænsninger ved metafil-broen

Da sider fanges som forbedrede metafiler, udbredes QuickReport-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 QuickReport gengiver, ikke en struktureret PDF

 

Emballeringsnote

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

 

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