![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Медленная печать на матричном принтере [D7, Win95/98, WinXP]
ndn © (2005-08-11 08:36:00)Здравствуйте, Уважаемые мастера!!!
У меня появилась проблема с печатью на матричном принтере. Принтер Ollivetti Pr2, - матричный, установлен как IBM proprinter II, Печать происходит из под винды. Необходимо напечатать печати (квадрат нарисованный линиями и текст внутри), все это печатается с помощью функций LineTo и DrawText, но печать при этом происходит с очень медленной скорость, особенно вертикальные линии. Подскажите пожалуйста как ускорить вывод на печать. Пробовали ставить родные драйвера под винду, результат не изменился. Возможно ли использовать псевдографику для печати печатей и если да то как, желательно с примером (функция на входе берет координаты левого верхнего угла и печатает с этой позиции).
Leonid Troyanovsky (2005-08-11 09:24:00) [1]
> ndn © (11.08.05 08:36)
> II, Печать происходит из под винды. Необходимо напечатать
> печати (квадрат нарисованный линиями и текст внутри), все
> это печатается с помощью функций LineTo и DrawText, но
> печать при этом происходит с очень медленной скорость, особенно
..
> результат не изменился. Возможно ли использовать псевдографику
> для печати печатей и если да то как, желательно с примером
Если оный принтер поддерживает ESC,
если на нем есть собс-ный шрифт, изображающий псевдографику,
и если качество получаемого изображения устроит,
то можно попробывать
PrintLineToGeneric( #27#112#0#20#80 );
where
Uses WinSpool;
Const
GenericPrinter: Pchar = 'Universal/Nur Text';
// Change to systems generic drivers name or Epson printer name
Procedure PrintLineToGeneric(Const line: string );
Var
BytesWritten: DWORD;
hPrinter: THandle;
DocInfo: TDocInfo1;
Begin
If not WinSpool.OpenPrinter(GenericPrinter, hPrinter, nil) Then
raise exception.create('Printer not found');
Try
DocInfo.pDocName := 'MyDocument';
DocInfo.pOutputFile := Nil;
DocInfo.pDatatype := 'RAW';
If StartDocPrinter(hPrinter, 1, @DocInfo) = 0 Then
Abort;
Try
If not StartPagePrinter(hPrinter) Then
Abort;
try
If not WritePrinter(hPrinter, @line[1], Length(line), BytesWritten)
Then
Abort;
Finally
EndPagePrinter(hPrinter);
End;
Finally
EndDocPrinter(hPrinter);
End;
Finally
WinSpool.ClosePrinter(hPrinter);
End;
End;
Peter Below (TeamB) 100113.1...@compuserve.com)
или Escape
http://groups-beta.google.com/group/fido7.ru.delphi.chainik/msg/c68e79b088787eab
--
Regards, LVT.