Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
ВнизПечать на рулон QReport Найти похожие ветки
← →
VICTOR_ (2003-11-10 11:04) [0]При печати на матричном принтере(Epson LX-300+) необходимо печатать весь отчет подряд без разделения на страницы.
Один из вариантов - менять QuickRep1.Page.Length перед печатью, заранее рассчитав длину сформированного отчета.
Подскажите лучшие варианты или настройки QReport.
Спасибо за ответы.
← →
Zergling (2003-11-10 11:42) [1]Как с QReport проедет не знаю, но попробуй:
procedure Tform1.SetPageSizes( APageLength, APageWidth : Integer);
var
hDeviceMode, ADeviceMode : THandle;
StubDevMode : TDeviceMode;
NewDevMode : ^TDeviceMode;
ADevice, ADriver, APort : array[0..255] of Char;
hPrinter : THandle;
begin
Printer.GetPrinter( ADevice, ADriver, APort, ADeviceMode);
if not OpenPrinter( ADevice, hPrinter, nil ) then
raise EPrinter.Create( SysErrorMessage( GetLastError ));
try
hDeviceMode := GlobalAlloc( GHND, DocumentProperties(
0, hPrinter,
ADevice, StubDevMode, StubDevMode, 0) );
NewDevMode := GlobalLock(hDeviceMode);
DocumentProperties( 0, hPrinter, ADevice, NewDevMode^,
NewDevMode^,
DM_OUT_BUFFER);
try
NewDevMode.dmFields := NewDevMode.dmFields or DM_PAPERSIZE or
DM_PAPERLENGTH or
DM_PAPERWIDTH;
NewDevMode.dmPaperSize := DMPAPER_USER;
NewDevMode.dmPaperLength := APageLength;
NewDevMode.dmPaperWidth := APageWidth;
DocumentProperties( 0, hPrinter, ADevice,
NewDevMode^, NewDevMode^,
DM_IN_BUFFER or DM_OUT_BUFFER);
finally
GlobalUnlock(hDeviceMode);
end;
Printer.SetPrinter( ADevice, ADriver, APort,hDeviceMode );
finally
ClosePrinter( hPrinter );
end;
end;
P.S. Откуда взято непомню.
← →
VICTOR_ (2003-11-10 12:29) [2]>Zergling © (10.11.03 11:42) [1]
Спасибо, буду пробовать.
>All
Пока есть 1 вариант - Задавать длину листа, рассчитав его перед печатью.
Возможно ли настроить сам QReport для печати на рулон?
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.012 c