Russian Qt Forum

Qt => Вопросы новичков => Тема начата: Vladimir_Klyuev от Июль 14, 2014, 11:07



Название: Печать штрих кода на термопринтере.
Отправлено: Vladimir_Klyuev от Июль 14, 2014, 11:07
Доброго всем времени суток.

Требуется отправить на печать на термопринтер набор чисел в виде штрих кода.
1. Прошу разъяснить как реализовать такую задачу.
2. Возможно ли отправка на принтер без диалогового окна о выборе принтера и т.п. (где-то читал, что можно), но хотел бы по подробнее.

Сразу скажу, новичок в qt, поэтому чем подробнее будет объяснено, тем лучше ;)


Название: Re: Печать штрих кода на термопринтере.
Отправлено: alex312 от Июль 14, 2014, 11:19
Vladimir_Klyuev, будет продуктивнее если вы сами поищете в документации и примерах как с использованием Qt выводить на печать, поищите готовые решения как сформировать изображение штрих кода и начнете задавать более конкретные вопросы.
Потому как с такой формулировкой как у вас, вам в раздел "Предложения работы" .


Название: Re: Печать штрих кода на термопринтере.
Отправлено: Vladimir_Klyuev от Июль 14, 2014, 14:25
С подачей на печать проблем нет. Проблемы как раз с созданием штрих кода. Может подскажете рабочие решения!?


Название: Re: Печать штрих кода на термопринтере.
Отправлено: alex312 от Июль 14, 2014, 15:04
я лично никогда не работал с штрих кодами, но вот нагуглил вот такое :
http://www.qtcentre.org/wiki/index.php?title=EAN-13_Barcode_class
https://code.google.com/p/libbarpp/
https://github.com/zint/zint


Название: Re: Печать штрих кода на термопринтере.
Отправлено: Vladimir_Klyuev от Июль 15, 2014, 13:24
В приницпе можно использовать EAN13 http://www.qtcentre.org/wiki/index.php?title=EAN-13_Barcode_class

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

Вызываю
Код:
EAN13 code("200001000000");
code.draw(QRectF(50, 50, 400, 200), *painter);

Соответственно вызываю void EAN13::draw(const QRectF &rect, QPainter &painter) из указанного примера.
Как я понял, что код вставляется прямо в окно.

Так вот вопрос: Как изменить функцию, чтобы она подавала на печать код, и только!?


Название: Re: Печать штрих кода на термопринтере.
Отправлено: carrygun от Июль 16, 2014, 04:33
Зачем изменять функцию? У нее же есть входной параметр рисовалки.
Надо как-то так:
Код
C++ (Qt)
QPrinter printer;
...
QPainter painter(&printer);
...
code.draw(QRectF(50, 50, 400, 200), &painter);
 


Название: Re: Печать штрих кода на термопринтере.
Отправлено: Vladimir_Klyuev от Июль 16, 2014, 07:13
Отлично!