Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Потрепаться";
Текущий архив: 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
4-1113542877
LineSoft
2005-04-15 09:27
2005.06.06
Управление печатью


1-1116523039
Petro_
2005-05-19 21:17
2005.06.06
Mdi и края формы в Windows XP


3-1115092792
hawkins
2005-05-03 07:59
2005.06.06
Как у interbase базы данных определить диалект с которым она созд


8-1108654118
Sun
2005-02-17 18:28
2005.06.06
DXImageList


4-1113677861
tek
2005-04-16 22:57
2005.06.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
Английский Французский Немецкий Итальянский Португальский Русский Испанский