Каким образом можо сменить тип бумаги при печати отчёта?

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;