Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.037 c
1-1105698951
Unknown
2005-01-14 13:35
2005.01.30
Application.CreateForm


1-1106179977
_Дельфин_
2005-01-20 03:12
2005.01.30
String и Char


1-1105858601
DDDeN
2005-01-16 09:56
2005.01.30
Защита программного пакета


14-1105345156
syte_ser78
2005-01-10 11:19
2005.01.30
За что????


14-1105136702
pika
2005-01-08 01:25
2005.01.30
Кто как готовится к предстоящим экзаменам !!!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский