Главная страница
    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.57 MB
Время: 0.032 c
6-15190
wmz
2002-11-07 13:02
2003.01.06
Проверка proxy-серверов


14-15244
vic_774N
2002-12-03 23:17
2003.01.06
А будут ли через 10 - 20 лет люди которые смогут программировать


3-14957
KonuhovSegey
2002-12-14 11:46
2003.01.06
Разъясните, пожалуйста использование dbiSaveChanges


3-14949
Almaren
2002-12-14 18:05
2003.01.06
Как узнать содержание активной записи в базе данных?


14-15260
Мазут Береговой
2002-12-16 21:49
2003.01.06
теорией реляционных баз данных





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