Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.02.2010, 09:52   #1
Gigabit
Пользователь
 
Аватар для Gigabit
 
Регистрация: 28.04.2009
Сообщений: 31
По умолчанию Заставить работать принтер

Дано -
китайский термопринтер rp-pos58ns-p
Подключение через Лпт порт
Требуется -
Заставить принтер работать без драйверов.
Подгрузить русский шрифт.
-------------------------------------------
Задача очень ложная и сам я справится пока не могу, принтер поддерживает только латиницу, а нужно заставить его писать по русски, графический режим у принтера не работает без драйверов, и использовать его запрещено по заданию, драйвер также использовать нельзя. Помогите найти способ загрузить в принтер русский шрифт с помощью делфи, неделю уже бьюсь над этой задачей.
Чтобы наделать ошибок надо для начала уметь хоть что то делать!
Gigabit вне форума Ответить с цитированием
Старый 03.02.2010, 10:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

А если схитрить и печатать а-ля транслитом?
т.е. слово "привет" печатать "npNBet" ну или типа такого?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2010, 10:26   #3
Gigabit
Пользователь
 
Аватар для Gigabit
 
Регистрация: 28.04.2009
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
А если схитрить и печатать а-ля транслитом?
т.е. слово "привет" печатать "npNBet" ну или типа такого?
Вначале была идея писать буквы которые есть, а не хватающие дорисовать но невозможность использовать графику без дров свела результат к нулю, транслит не подойдёт заказчику нужна полноценная программа.
Чтобы наделать ошибок надо для начала уметь хоть что то делать!
Gigabit вне форума Ответить с цитированием
Старый 03.02.2010, 10:38   #4
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

интересные конечно мысли насчет без драйверов... вы когда работаете в delphi, а значит под win с LPT портом уже используете системные драйверы... если принтер не поддерживает в своем буфере русские коды символов изначально, а графический режим запрещен, то ваша задача невыполнима (за транслитерацию уже сказали).

...еще, а если попробовать вот >>> так
...еще, вы точно знаете, что ваш принтер не поддерживает русскую кодировку? доку по командам вашего принтера искали? хо-отя китайский

upd
-------

Цитата:
Выкладываю мануал.
смотрю ESC можно поточечно управлять, то что нужно как раз.

ооо, уже
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation

Последний раз редактировалось raxp; 03.02.2010 в 12:28.
raxp вне форума Ответить с цитированием
Старый 03.02.2010, 11:05   #5
Gigabit
Пользователь
 
Аватар для Gigabit
 
Регистрация: 28.04.2009
Сообщений: 31
По умолчанию

Цитата:
Сообщение от raxp Посмотреть сообщение
...еще, а если попробовать вот >>> так
...еще, вы точно знаете, что ваш принтер не поддерживает русскую кодировку? доку по командам вашего принтера искали? хо-отя китайский
Я уж не знаю что делать, давайте попробуем работать с графикой, чтоб был хоть какой то результат, Есть мануал, в нём сис команды для принтера, есть команда для графики, 2 дня с ней мучаюсь вроде делаю всё правильно но принтер отказывается "рисовать" при подаче команды просто виснет. Что принтер не поддерживает Кириллицу это факт.
Выкладываю мануал.
Вложения
Тип файла: rar rp-pos58nl printer user manual.rar (109.7 Кб, 26 просмотров)
Чтобы наделать ошибок надо для начала уметь хоть что то делать!
Gigabit вне форума Ответить с цитированием
Старый 03.02.2010, 12:11   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Хм... Если я правильно понял мануал то у тебя для отрисовки символа есть матрица в каждой колонке которой 8 точек
Предположим нарисовать букву "А" матрица будет такая:

1234567 - Это кол-во данных
0 ___*___
1 __*_*__
2 _*****_
3 *_____*
|
Это какие биты будут задействованы

А сама команда будет выглядеть примерно так

ESC *1 1 7 1 2 6 5 6 2 1
Здесь:
1 - Режим
1 7 - будет 7 колонок
1 2 6 5 6 2 1 - это цифры биты которых по вертикали засвечивают точки в каждой колонке

По-моему так.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2010, 12:46   #7
Gigabit
Пользователь
 
Аватар для Gigabit
 
Регистрация: 28.04.2009
Сообщений: 31
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Хм... Если я правильно понял мануал то у тебя для отрисовки символа есть матрица в каждой колонке которой 8 точек
Предположим нарисовать букву "А" матрица будет такая:

1234567 - Это кол-во данных
0 ___*___
1 __*_*__
2 _*****_
3 *_____*
|
Это какие биты будут задействованы

А сама команда будет выглядеть примерно так

ESC *1 1 7 1 2 6 5 6 2 1
Здесь:
1 - Режим
1 7 - будет 7 колонок
1 2 6 5 6 2 1 - это цифры биты которых по вертикали засвечивают точки в каждой колонке

По-моему так.
"В переводе" это будет выглядеть так -
Write(F,chr(27)+chr(42)+chr(1)+chr( 1)+chr(7)+chr(1)+chr(2)+chr(6)+chr( 5)+chr(6)+chr(2)+chr(1));
где 27 42 - режим
1 - 8 байт
1 - N1 колонок по горизонтали
7 - N2 колонок по горизонтали (написано в мануале, переведено со словарём)
1265621 собственно байты
Но там написано что параметр N2=0 или 1! Это меня смутило не могу понять за что отвечает N2.
И конечно же я попробовал вашу комбинацию. Принтер виснет т.е. не отвечает на последующие команды.
У меня два варианта либо из за ошибки в синтаксисе команды либо принтер и в самом деле не работает с графикой без родных дров.
Будем надеется на лучшее и ломать голову над синтаксисом.
Я перепробовал уже очень много вариантов.
Кто сможет изваять рабочий подарю медаль! из картонки конечно))))
Чтобы наделать ошибок надо для начала уметь хоть что то делать!
Gigabit вне форума Ответить с цитированием
Старый 03.02.2010, 13:07   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну... Я когда-то на Эпсонах почти так делал, и срабатывало нормально...
Хотя у меня был на руках русский мануал...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.02.2010, 14:25   #9
Gigabit
Пользователь
 
Аватар для Gigabit
 
Регистрация: 28.04.2009
Сообщений: 31
По умолчанию

Спасибо всем, я решил проблему, просто когда посылаешь данные принтеру они заносятся в буфер, а для того чтоб их вывести надо повторно ввести команду [27][42] (без параметров)а затем команду печати!
Чтобы наделать ошибок надо для начала уметь хоть что то делать!
Gigabit вне форума Ответить с цитированием
Старый 03.02.2010, 14:28   #10
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Gigabit
Ну а всетки я угадал формат, или даже близко не попал?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить работать CheckBox? ridmal Microsoft Office Word 1 21.05.2009 09:47
Как заставить работать NFS 2 SE? Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 6 02.11.2008 16:35
Заставить работать Winlogon slm Общие вопросы Delphi 3 18.09.2008 16:47
Как заставить работать php? yourself Помощь студентам 9 20.05.2008 08:08
Как заставить работать dll ? Volkogriz Общие вопросы Delphi 10 13.12.2007 10:24