TQRHotPDFExportFilter

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

 

FastReport adapter ReportBuilder eszköz DevExpress adapter

QuickReport export szűrő, amely a HotPDF-et használja mögöttes PDF háttérrendszerként a QuickReport saját QRPDFFilter szűrője 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

 

Delphi deklaráció:

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;

 

Leírás

A TQRHotPDFExportFilter a TQRExportFilter osztályból származik, így beilleszkedik a szokásos MyReport.ExportToFilter(MyExporterInstance) munkafolyamatba QuickReport magváltoztatások nélkül. Mivel a TQRExportFilter nem egy TComponent leszármazott (ez egy egyszerű osztály a QuickReport tervezésében), nincs IDE komponens regisztráció - a hívók a TQRHotPDFExportFilter-t közvetlenül a Create('out.pdf') segítségével példányosítják

 

A QuickReport minden előkészített oldalt egy QRPrinter.PageList-ben gyorsítótárazott TMetafile-ba renderel. Ahelyett, hogy újra megvalósítaná a teljes komponensenkénti TextOut / AcceptGraphic / AcceptBand visszahívási készletet, az adapter figyelmen kívül hagyja azokat (no-op override-ok), és a Finish metódusban gyűjti be az oldalankénti metafile-okat:

 

1. Start(PaperWidth, PaperHeight, Font) - létrehozza a THotPDF példányt, beállítja a metaadatokat, meghívja a BeginDoc-ot, és elmenti a (PaperWidth, PaperHeight) értékeket, hogy a Finish helyesen alakíthassa az oldalakat

2. NewPage / EndPage / TextOut / AcceptGraphic - no-op (a metafile már tartalmazza a renderelt tartalmat)

3. Finish - minden gyorsítótárazott QRPrinter.PageList[i] metafile-hoz hozzáad (vagy újrahasznál) egy pontokban kifejezett PaperWidth / PaperHeight méretű HotPDF oldalt, és meghívja a ShowEnhancedMetafile-t. Ezután EndDoc és felszabadítás

 

Tulajdonságok

Title / Author / Subject / Keywords - dokumentum metaadatok. Ha a Title üres, az adapter a Filename-re vált vissza, így a PDF mindig nem üres címmel rendelkezik. Az ExportToFilter meghívása előtt kell beállítani

PDFVersion - a dokumentum által megcélzott PDF specifikációs szint. Alapértelmezés szerint pdf17

Compressed - a HotPDF folyamtömörítés bekapcsolása (alapértelmezés szerint True). Diagnosztikai PDF-ek esetén állítsa False értékre

CompressionLevel - FlateDecode szint. Alapértelmezés szerint clDefault

SetOutputStream(AStream) - átirányítja a PDF bájtokat a AStream folyamba a lemezre írás helyett. Az ExportToFilter előtt kell meghívni. Belül egy ideiglenes fájl használatos, mert a HotPDF az EndDoc-nál ment; a bájtok a Finish metódusban kerülnek visszafolyatásra

 

Tipikus munkafolyamat

 

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

try

Filter.Title := 'Monthly Statement';

Filter.PDFVersion := pdf17;

QuickRep1.ExportToFilter(Filter);

finally

Filter.Free;

end;

 

Megőrzött képességek

A QuickReport szabványos előnézeti / nyomtató folyamata által renderelt vektoros és raszteres oldaltartalom. GDI által feloldott szövegsorozatok. Az oldalméret követi a QuickReport által a Start metódusnak átadott PaperWidth / PaperHeight értékeket

 

A metafile híd korlátai

Mivel az oldalak továbbfejlesztett metafile-ként (enhanced metafile) vannak rögzítve, a strukturális információkat igénylő QuickReport-specifikus PDF-funkciók (AcroForm mezők, nevesített célok, körvonalak, PDF/A vagy PDF/X megfelelőségi korlátok) nem terjednek tovább. A kimenet a QuickReport által renderelt kép hű vizuális reprodukciója, nem pedig egy strukturált PDF

 

Csomagolási megjegyzés

Az adapter a Lib\Addons\QuickReport\ könyvtárban található, és nem része a fő HotPDF*.dpk csomagoknak, így a QuickReport függőség csak azokban a projektekben jelenik meg, amelyek kifejezetten használják ezt az adaptert. A smoke teszt (smoke_qr_hotpdf.dpr) az egység mellett található

 

Lásd még: TfrxHotPDFExport, TppHotPDFDevice, dxHotPDFExportReportLink, THPDFPage.ShowMetafile, Enhanced EMF/WMF Support