Форум: "Потрепаться";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
ВнизОтправка служебных комманд на чековый принтер Samsung SRP350 Найти похожие ветки
← →
DelphiN! © (2005-05-18 11:19) [0]Купили чековый принтер, поставили дрова, печатает как обычный принтер, однако нужно использовать некоторые служебные комманды, скажем для обрезки бумаги выезда бумаги ...
Вот напрмер в мануале написано что есть комманда :
Control Codes Hex Codes Notes
<HT> 09 Horizontal tab
Пробовал отправиль данную комманду так :
var
f : TextFile;
begin
AssignFile(f,"LPT1");
Rewrite(f);
Writeln(f,#09);
Writeln(F,"Test");
CloseFile(F);
end;
и так :
var
f : TextFile;
begin
AssignFile(f,"LPT1");
Rewrite(f);
Writeln(f,"<HT>);
Writeln(F,"Test");
CloseFile(F);
end;
В первом случае на печать выводится слово Test (без табуляции), а во втором
<HT>
Test
Но табуляция не добавляется, почему ?
Как использовать служебные комманды ?
← →
wal © (2005-05-18 11:45) [1]Второй вариант фтопку, ибо <HT> - это не строка а символическое обозначение #$09.
Первый вариант работает так, как ты и написал - горизонтальная табуляция, перевод строки и уже с новой строки "Test".
Попробуй Wrieln(F, #09+"Test").
С уважением.
← →
-=XP=- © (2005-05-18 11:46) [2]Как-то через #27 - ESC-последовательности.
Когда-то, кажется, такое было?
См. документацию.
← →
DelphiN! © (2005-05-18 15:31) [3]
> [2] -=XP=- © (18.05.05 11:46)
Что за ESC последовательности, можно по подробней ...
И еще, почему когда печатаю вышеописанным способом русский текст из принтера вылазят какие-то иероглефы, а из блокнота русский текст печатается хорошо, как напечатать русский текст ?
← →
wal © (2005-05-18 15:43) [4]А в блокноте шрифт какой стоит?
← →
DelphiN! © (2005-05-18 16:03) [5]wal © (18.05.05 15:43) [4]
Lucida Console Русский
Пробовал так :
s := "Русский";
Writeln(f,s);
и
Writeln(f,PWideChar(s));
и
Writeln(f,PChar(s));
Но кракозябры везде
← →
sniknik © (2005-05-18 16:09) [6]Horizontal tab - это вообщето сдвиг по горизонтали, табуляция.
должно действовать в одной строке (если уж в доке есть), а не на разных строках.
вот так должно быть видно разницу
Writeln(F,#09"Test with tab");
Writeln(F,"Test without tab");
← →
sniknik © (2005-05-18 16:11) [7]или (по типу того чего хотелось в [0])
Write(F,#09);
Writeln(F,"Test with tab");
Writeln(F,"Test without tab");
← →
DelphiN! © (2005-05-18 16:16) [8]А что такое Esc последовательности ?
В документации есть комманда :
<ESC> d n 1B 64 n Print and feed n lines
а еще есть всякие :
<FS> q n …. 1C 71 n … Define NV bit image
← →
-=XP=- © (2005-05-18 16:20) [9]Esc-последовательности - это те, которые начинаются #27
Попробуйте Write(F, #27, "d", 10);
← →
sniknik © (2005-05-18 17:10) [10]> Print and feed n lines
печатать (видать то что в буфере) и прокрутить n строк
так (наверное)
Write(F,"Test "); //не печатает
Write(F,"Test "); //не печатает
Write(F,"Test "); //не печатает (нет завершающего #13 по которому буфер печатается... обычно)
Write(F,#$1B#$64#10); //а это и напечатает раннеее и прокрутит на 10 строк
← →
DelphiN! © (2005-05-19 10:36) [11]Всем огромнейшее спасибо !
← →
DelphiN! © (2005-05-19 14:48) [12]Забыл спросить, а как же делать с печатью русского языка ? Почему вместо русских букв иероглефы, а при печате из блокнота все отлично работает ...
← →
wal © (2005-05-19 14:57) [13]Точно иероглифы? может просто кодировка другая?
← →
DelphiN! © (2005-05-19 14:59) [14]Иероглефы, помоему китайские
← →
sniknik © (2005-05-19 15:08) [15]блокнот печатает через настронный принтер (пуск-настройка-принтеры) так? видать он посылает команду переключения раскладки, а ты нет. иши в мануале команду.
← →
DelphiN! © (2005-05-20 07:18) [16]Нашел в мануале 2-е
<ESC> % n 1B 25 n Select/Cancel user-defined character set
<ESC> ? n 1B 3F n Cancel user-defined characters
но поэксперементировал
← →
DelphiN! © (2005-05-20 07:19) [17]с ними и результатов это не дало ...
← →
sniknik © (2005-05-20 08:43) [18]чтобы печетать на определяемом-юзером фонте, его нужно иметь... загрузить. (имхо конечно, я твой принтер не знаю, так по общим принципам) вот, судя по всему до этой команды должно быть определение/загрузка юзерского фонта.
потом не обязательно печатать фонтом, у принтера наверняка есть графический режим, или печать задаваемых битовых масок (ну типа команда и дальше данные которые определяют строку посимвольно - первые 12 байт = 1 символ вторые 12 еще и т.д.). блокнот может печатать и так, графикой...
пошли 2 аналогичных блока текста, из блокнота и из nc(досовский такой старый знаеш?) и смотри на время за которое напечатают... графический режим чуть медленнее.
и еще попробуй не писать в порт а через тот же установленный принтер послать на печать, что выйдет?
в общем нужно разбиратся, у тебя мануал и принтер есть? вот и разбирайся ;о)).
а еше, раз уж это чековый принтер, в нем может быть фискалка и аклз(эклз? х.з.), фискалка включается до самого принтера, и может блокировать часть команд... (это к тому что и ее надо учитывать не счас так потом)
← →
wal © (2005-05-20 09:08) [19]PortMonitor"ом посмотри, что посылается, когда из блокнота печатаешь.
С уважением
← →
ANB © (2005-05-20 09:27) [20]Блокнот, похоже, гонит на принтер графическую копию, то есть русские буквы уже нарисованы. Ищи в мануале на принтер, поддерживает ли он русские буквы, и как переключить кодировку (многие обычные струйные не поддерживают, лазерные - тоже не все, или грузить шрифты надо, как для HP6L). Если поддержки русских шрифтов нет и как загружать не нашел - переходи на печать в графике, например, через TPrinter.
Страницы: 1 вся ветка
Форум: "Потрепаться";
Текущий архив: 2005.06.06;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.016 c