Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.30;
Скачать: CL | DM;

Вниз

коды для принтера   Найти похожие ветки 

 
odessey   (2005-01-11 18:45) [0]

Вопрос вот какой, надо напечатать текстовый файл, но не просто.
Файл содержит коды для принтера в начале и в конце файла.
если я буду пускать через мемо или ричедит то коды не будут работать.
Вот так тож коды подводят (27 или 12 символ, к примеру)
 AssignFile(FileTxt,"d:\1.txt");
 AssignPrn(PrintTxt);
 Reset(FileTxt);
 Rewrite(PrintTxt);
 while Not EOF(FileTxt) do
 begin
  Readln(FileTxt, TempStr);
  Writeln(PrintTxt, TempStr);
 end;
 CloseFile(FileTxt);
 CloseFile(PrintTxt);

может кто подскажет как делать только поподробнее пожалуйста!
Заранее спасибо


 
Семен Сорокин ©   (2005-01-11 19:15) [1]

выделить коды из текста и запускать отдельным Write"ом


 
odessey   (2005-01-12 14:33) [2]


> выделить коды из текста и запускать отдельным Write"ом

результат тот же


 
KSergey ©   (2005-01-12 14:37) [3]

> Вот так тож коды подводят

Т.е.? Не попадают на принтер?


 
odessey   (2005-01-12 14:44) [4]

распечатывает их квадратами(


 
Alexander Panov ©   (2005-01-12 14:45) [5]

odessey   (11.01.05 18:45)
Ты хоть бы сказал, какой принтер у теюя.


 
odessey   (2005-01-12 14:51) [6]


> Alexander Panov

Epson матричный.....разве это имеет значение? Если этот файл вручную из под доса пускаю, то все нормально...коды видет


 
Alexander Panov ©   (2005-01-12 16:13) [7]

odessey   (12.01.05 14:33) [2]
результат тот же


Код покажи.


 
odessey   (2005-01-12 19:03) [8]

AssignFile(FileTxt,"d:\1.txt");
 AssignPrn(PrintTxt);
 Reset(FileTxt);
 Rewrite(PrintTxt);
 Writeln(PrintTxt, chr(27)+chr(64));
 Writeln(PrintTxt, chr(12));
 Writeln(PrintTxt, chr(27)+chr(33)+chr(01));
 while Not EOF(FileTxt) do
 begin
  Readln(FileTxt, TempStr);
  Writeln(PrintTxt, TempStr);
 end;
 Writeln(PrintTxt, chr(12));
 Writeln(PrintTxt, chr(27)+chr(64));
 CloseFile(FileTxt);
 CloseFile(FileTxt1);
 CloseFile(PrintTxt);


 
MacroDenS ©   (2005-01-12 19:10) [9]

А используемый принтером шрифт не влияет на печать???


 
odessey   (2005-01-12 19:29) [10]

коды должны изменить шрифт принтера, но некоторые из них не отображаются при посылке на печать (проблема!) и из-за этого часть из них печатается на бумаге (а должны изменить настройку принтера...шрифт)


 
odessey   (2005-01-13 19:50) [11]

вот еще один вариант (тож не помог)
procedure TForm1.Button2Click(Sender: TObject);
var
pDevice : pChar;
pDriver : pChar;
p,pPort : pChar;
hDMode : THandle;
PDMode : PDEVMODE;

begin
//if PrintDialog1.Execute then begin
p:=PAnsiChar(ComboBox1.Text);
GetMem(pDevice, cchDeviceName);
GetMem(pDriver, MAX_PATH);
GetMem(pPort, MAX_PATH);
Printer.GetPrinter(pDevice, pDriver, pPort, hDMode);
Printer.SetPrinter(p, PDriver, p, hDMode);
FreeMem(pDevice, cchDeviceName);
FreeMem(pDriver, MAX_PATH);
FreeMem(pPort, MAX_PATH);
Printer.BeginDoc;
Printer.Canvas.TextOut(100, 100, chr(27)+chr(33)+chr(128)+"Delphi Is RAD!"+chr(27)+chr(33)+chr(00));
Printer.EndDoc;

Почему коды не работают? Мастера подскажите


 
Alexander Panov ©   (2005-01-13 20:12) [12]

Попробуй заменить WriteLn на Write.


 
odessey   (2005-01-13 21:22) [13]

не помогло.....проблема в этих кодах управления принтера....винда чтоль их меняет и принтер не понимает коды


 
vital   (2005-01-14 11:21) [14]

Вот так реально у меня работает, и ESC-коды на ура идут

procedure WriteRawStringToPrinter(PrinterName:string; S:string);
var
 Handle: THandle;
 N: DWORD;
 DocInfo1: TDocInfo1;
begin
 if not OpenPrinter(PChar(PrinterName), Handle, nil) then
 begin
   ShowMessage("Error " + IntToStr(GetLastError));
   Exit;
 end;
 with DocInfo1 do
 begin
   pDocName := PChar("test doc");
   pOutputFile := nil;
   pDataType := "RAW";
 end;
 StartDocPrinter(Handle, 1, @DocInfo1);
 StartPagePrinter(Handle);
 WritePrinter(Handle, PChar(S), Length(S), N);
 EndPagePrinter(Handle);
 EndDocPrinter(Handle);
 ClosePrinter(Handle);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 WriteRawStringToPrinter(edit1.Text, "Test This"#12);
 // В качестве первого параметра указать сетевое имя или полное локальное имя
 // принтера, например, «\\sapr_1\HpLaserJ» или «HP DesignJet 430 (E/A0) by HP»
end;



Страницы: 1 вся ветка

Текущий архив: 2005.01.30;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.052 c
3-1104121687
LeoAdmin
2004-12-27 07:28
2005.01.30
Вертикальная прокрутка в DBCtrlGrid


14-1105244659
Sicilla
2005-01-09 07:24
2005.01.30
Тестеры


3-1104262713
zokzok
2004-12-28 22:38
2005.01.30
Доступ к таблице из другой формы


1-1105966695
Mate_ru
2005-01-17 15:58
2005.01.30
Перенос слов


3-1103873143
DelphiN!
2004-12-24 10:25
2005.01.30
Ошибка при фильтрации данных в ClientDataSet-e