|
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
|