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

Вниз

DOS-печать из Delphi   Найти похожие ветки 

 
Андрей Бочкарев   (2002-12-20 22:02) [0]

Уважаемые мастера!
Столкнулся с проблемой: не могу послать управляющую последовательность для принтера (escape-последовательность) в порт LPT1. Это необходимо, чтобы DOS-приложение могло печатать узким шрифтом на HP LaserJet5000.
Смотрел на форумах. Для текстовой печати в Delphi обычно рекомендуют AssignPrn:
procedure TForm1.Button1Click(Sender: TObject);
var
To_Prn : TextFile;
begin
AssignPrn(To_Prn);
Rewrite(To_Prn);
Writeln(To_Prn, "Printer in Text Mode");
CloseFile(To_Prn);
end;

Пробовал. Этот код работает для обычных символов, но не для управляющих! Все управляющие символы, в том числе Escape-символ, принтер печатает как квадратики.
Что делать, подскажите!


 
Song   (2002-12-20 22:31) [1]

В этом Вашем отрывке не видно, как Вы пытаетесь послать управлюящие символы.


 
Андрей Бочкарев   (2002-12-21 00:34) [2]

Например, Esc-команду выбора альбомной ориентации страницы при печати на HP5000
<Esc>&l1O
я пытался послать как
Writeln(To_Prn, #27"&l1O");


 
Вообще   (2002-12-21 03:30) [3]

то, посылка Esc-команды, обычно выглядит так:
Writeln(To_Prn,#27,CmndLoByte,CmndHiBite);
А что есть посылка принтеру строки &110 - я просто не знаю!


 
KSergey   (2002-12-21 12:22) [4]

Не знаю, просто как предположение: возможно, эти команды открывают как-бы "текстовый" файл, который при приходе управляющих символов либо вовсе закрывается, либо еще и перевирает все (с этим точно сталкивался, но в ДОС-программе: вместо посылаемого #13 всегда преобразовывал в #10#13, и когда это были символы не конца строки, а часть управляющей последовательности (вернее, часть графических даных).. в общем искал я долго...)


 
Anatoly Podgoretsky   (2002-12-21 13:01) [5]

KSergey © (21.12.02 12:22)
#13#10 а то это извращенное, могут быть проблемы

Андрей Бочкарев (20.12.02 22:02)
AssignPrn(To_Prn);
попробуй заменить на
AssignFlle(F,"LPT1");



 
ILYA1   (2002-12-22 02:28) [6]

Как то довелось делать программку печати ДОСовских файлов.
Так я просто в начало файла добавлял управляющие Esc-последовательности, а потом командой WinExec("copy "+DOS_file_name+" LPT"+n_porta);
Прошу меня извинить, синтексис команды не помню. Думаю, что идея ясна. На принтерах HP2100 HP4100 все успешно и по сей день.
Успехов!


 
Андрей Бочкарев   (2002-12-23 22:24) [7]

Спасибо Anatoly Podgoretsky!
Вместо AssignPrn(To_Prn); надо использовать
AssignFile(To_Prn,"LPT1");
тогда передача ESC-символов
последующим Writeln (To_Prn,"ESC-последов")
происходит корректно.



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

Форум: "Основная";
Текущий архив: 2003.01.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.007 c
4-15375
Pat
2002-11-17 14:06
2003.01.06
Как можно удалить ScrollBar ы у dbGrid?


1-15007
urza
2002-12-24 13:53
2003.01.06
WinRar


1-15146
adolf_99
2002-12-23 19:10
2003.01.06
Помогите


1-15054
slyfox
2002-12-25 06:42
2003.01.06
Проблемка с ZReport


1-15013
Ozone
2002-12-24 15:00
2003.01.06
Работа с TChart





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский