Каким образом можо сменить тип бумаги при печати отчёта?
Question: Каким образом можо сменить тип бумаги при печати отчёта?
Answer:
Доступ ко всем полям структуры DEVMODE можно получить событии OnPrintPage, к примеру для изменения поля DM_MEDIATYPE можно использовать такой код (по аналогии и для остальных полей) :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
uses frxprinter; procedure frxReport1PrintPage(Page: TfrxReportPage; CopyNo: Integer); procedure ChangeMediaType(mType: Integer); begin if frxPrinters.Printer is TfrxPrinter then with TfrxPrinter(frxPrinters.Printer) do begin DeviceMode.dmFields := DeviceMode.dmFields or DM_MEDIATYPE; DeviceMode.dmMediaType := mType; SetPrintParams(Page.PaperSize, Page.PaperWidth, Page.PaperHeight, Page.Orientation, Page.Bin, Integer(Page.Duplex), frxReport1.PrintOptions.Copies); end; end; begin if idx = 0 then ChangeMediaType(DMMEDIA_TRANSPARENCY) else if idx = 1 then ChangeMediaType(DMMEDIA_GLOSSY) else ChangeMediaType(DMMEDIA_STANDARD); inc(idx); end; |