![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Текстовая печать [D5, Win95/98, WinME, Win2k, WinXP]
MVova © (2002-06-06 16:50:00)Всем привет.
Есть текст в TStringList как отправить его на печать в текстовом режиме (принтер матричный).
Спасибо.
MVova (2002-06-06 19:51:00) [1]Спасибо. Буду пробовать.
Song (2002-06-06 19:34:00) [2]См. AssignPrn()
Печать будет вестись на текуще выбранный принтер. Исходник будет на порядок легче чем в предыдущм ответе.
Вообще способов много. Я бы сказал печать через устройство prn это самый последний способ что можно применить.
Fiend (2002-06-06 17:57:00) [3]тоже не проблема
делаем так:
function TForm3.PrintReport:boolean;
var s,s1,s2,s3: PChar;
devm:THandle;
printername:string;
StringNo:integer;
begin
try
if GraphicPrint=false then begin
PreviewProc.Filtered:=false;
DataSource1.Enabled:=false;
{Printer.BeginDoc;}
s:=AllocMem(255);
s1:=Allocmem(255);
s2:=allocmem(255);
s3:=allocmem(255);
Printer.GetPrinter(s1,s2,s3,devm);
if pos("\\",s1)=0 then printername:="LPT1" else printername:=s1;
AssignFile ( f, printername );
Rewrite ( f );
PreviewProc.First;
while PreviewProc.EOF=false do begin
CharToOEM(PChar(PreviewProc.FieldByName("output").text),s);
WriteLn ( f, s);
PreviewProc.Next;
end;
CloseFile ( f );
FreeMem(s);
freemem(s1);
freemem(s2);
freemem(s3);
{Printer.EndDoc;}
end
Эта фишка сама определяет куда и как печатать.
это еще не конец хвункции, но там есть то что тебе надо
извини за кривость текста, написано триста лет назад.
MVova (2002-06-06 17:49:00) [4]А если он сетевой?
Fiend (2002-06-06 17:04:00) [5]Открой Lpt1 и печатай в него, всё будет ок