Каким образом можо сменить тип бумаги при печати отчёта?
Question: Каким образом можо сменить тип бумаги при печати отчёта?
Answer:
Доступ ко всем полям структуры DEVMODE можно получить событии OnPrintPage, к примеру для изменения поля DM_MEDIATYPE можно использовать такой код (по аналогии и для остальных полей) :
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;