Russian Qt Forum

Qt => Печать => Тема начата: Termit от Апрель 14, 2014, 14:21



Название: Работа с принтером без gui
Отправлено: Termit от Апрель 14, 2014, 14:21
Привет всем.

Есть задача следующего содержания:

Имеем:
  • Linux
  • Приложение написанное с использованием qtservice соответственно только core никаких gui

Необходимо:
  • Печатать на cups принтер или в pdf файл документы и не просто текст, а в самом простом случае html

Как?
Пока читаю за poppler. Подойдет?


Название: Re: Работа с принтером без gui
Отправлено: Alex Custov от Апрель 15, 2014, 12:33
для печати в PDF есть виртуальный принтер CUPS-PDF (http://packages.ubuntu.com/trusty/cups-pdf). Если свяжешься с poppler имей ввиду, что он под GPL.


Название: Re: Работа с принтером без gui
Отправлено: OKTA от Апрель 15, 2014, 12:37
Сорри, что не по теме, но не могу не спросить. Как и кто выясняет, что чья-то программа использует что-то нарушающее лицензию, ту же GPL? Неужели кому-то платят деньги за то, что они ковыряются в новых выходящих программах на предмет использования и кражи чужого кода? Всегда было это интересно.


Название: Re: Работа с принтером без gui
Отправлено: qate от Апрель 15, 2014, 13:06
а так ли надо без gui ?
пусть будет QApplication, но без окна
я накидал быстро примерчик (qt5) и сгенерил pdf (QPrinter + QTextDocument)


Название: Re: Работа с принтером без gui
Отправлено: Bepec от Апрель 15, 2014, 13:11
to OKTA:
Этим занимаются заинтересованные лица. Очень весомый козырь в спорах между конкурентами.

PS но на самом деле ни разу не видел чтобы просто так интересовались :)


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 15, 2014, 13:14
а так ли надо без gui ?
Судя по linux и QtService, работать это скорее всего будет на сервере. Если тянуть gui, то помимо Дополнительных Qt библиотек, добавятся иксы. А они на сервере никому не нужны.


Название: Re: Работа с принтером без gui
Отправлено: OKTA от Апрель 15, 2014, 13:17
to OKTA:
Этим занимаются заинтересованные лица. Очень весомый козырь в спорах между конкурентами.

PS но на самом деле ни разу не видел чтобы просто так интересовались :)

Да, это понятное дело, что хорошо, если есть за что цепануть конкурентов, но вот во многих программах в лицензиях есть пункты, которые запрещают рефакторинг, дизассемблирование и т.д. Получается, что те, кто ищут факты кражи чужого кода в приложениях с такими пунктами, тоже нарушают лицензию  ;D Интересно, что говорит суд и закон в таком случае  ???


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 13:43
для печати в PDF есть виртуальный принтер CUPS-PDF (http://packages.ubuntu.com/trusty/cups-pdf). Если свяжешься с poppler имей ввиду, что он под GPL.
Про CUPS-PDF я знаю.
Тут вопрос в том, что нужно уже в cups подать готовый документ, а куда он будет печататься это уже второй вопрос. Так вот нужно подготовить именно документ для печати и его уже отправить в cups.

По поводу GPL спасибо за подсказку, не обратил внимания. Но poppler это немного не то.


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 13:46
а так ли надо без gui ?
пусть будет QApplication, но без окна
я накидал быстро примерчик (qt5) и сгенерил pdf (QPrinter + QTextDocument)

Да ну, вот прямо так просто? :)

Я не зря писал про qtservice. Суть в том, что во время старта демона еще никаких Х нет и в помине, а городить что-то типа xvfb для демона ИМХО извращение.


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 13:47
а так ли надо без gui ?
Судя по linux и QtService, работать это скорее всего будет на сервере. Если тянуть gui, то помимо Дополнительных Qt библиотек, добавятся иксы. А они на сервере никому не нужны.
Да хрен с ними с Х пусть будут, их на момент старта сервиса еще нет... Даже rc.local еще не выполнился.


Название: Re: Работа с принтером без gui
Отправлено: Bepec от Апрель 15, 2014, 13:49
to OKTA: слышал от одного человека, что опознают использование библиотек по сигнатурам. Они могут совпадать, но всё равно это уже повод для обращения. Собственно владелец dll может подать в суд, требуя предоставить исходный код. А по требованию суда они будут обязаны предоставить.

PS рефакторинг и дизассемблирование в данном случае не понадобятся. Тупо совпадает участок в 500 байт - уже можно запрос подавать. Хм. Интересно за клевету потом можно привлечь будет?


Название: Re: Работа с принтером без gui
Отправлено: OKTA от Апрель 15, 2014, 14:05
to OKTA: слышал от одного человека, что опознают использование библиотек по сигнатурам. Они могут совпадать, но всё равно это уже повод для обращения. Собственно владелец dll может подать в суд, требуя предоставить исходный код. А по требованию суда они будут обязаны предоставить.

PS рефакторинг и дизассемблирование в данном случае не понадобятся. Тупо совпадает участок в 500 байт - уже можно запрос подавать. Хм. Интересно за клевету потом можно привлечь будет?


Конечно, подавать в суд за клевету это модно  ;D


Название: Re: Работа с принтером без gui
Отправлено: qate от Апрель 15, 2014, 14:22
а так ли надо без gui ?
пусть будет QApplication, но без окна
я накидал быстро примерчик (qt5) и сгенерил pdf (QPrinter + QTextDocument)

Да ну, вот прямо так просто? :)

Я не зря писал про qtservice. Суть в том, что во время старта демона еще никаких Х нет и в помине, а городить что-то типа xvfb для демона ИМХО извращение.

запущенных X и не надо - нужны же библиотеки от Х, а они ведь есть


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 15:23
запущенных X и не надо - нужны же библиотеки от Х, а они ведь есть

В теории так, а на практике QtGUI нужны запущенные Х :(. Для чего не знаю, возможно вычитывает оттуда какие-нить параметры для дальнейшей работы.

Хотя появилась идея попытаться указать моему демону переменные среды из Х. Может будет достаточно.


Название: Re: Работа с принтером без gui
Отправлено: Alex Custov от Апрель 15, 2014, 16:29
Если тянуть gui, то помимо Дополнительных Qt библиотек, добавятся иксы. А они на сервере никому не нужны.

Это решаемо через Xvfb


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 15, 2014, 16:35
Это решаемо через Xvfb

а городить что-то типа xvfb для демона ИМХО извращение.


Название: Re: Работа с принтером без gui
Отправлено: OKTA от Апрель 15, 2014, 16:45
Пишут, что в 4.3 без GUI работало
http://qt-project.org/forums/viewthread/28523

Но не особо верится...


Название: Re: Работа с принтером без gui
Отправлено: m_ax от Апрель 15, 2014, 17:41
Привет всем.

Есть задача следующего содержания:

Имеем:
  • Linux
  • Приложение написанное с использованием qtservice соответственно только core никаких gui

Необходимо:
  • Печатать на cups принтер или в pdf файл документы и не просто текст, а в самом простом случае html

Как?
Пока читаю за poppler. Подойдет?

Поставить LaTeX.. Писать данные в tex файл (возможно в уже сформированные шаблоны), а в конце запускать latex to pdf..
?


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 21:37
Пишут, что в 4.3 без GUI работало
http://qt-project.org/forums/viewthread/28523

Но не особо верится...
Даже если и так, юзаю все равно не ниже 4.6 т.е. от Debian squeeze и выше.


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 15, 2014, 21:39
Поставить LaTeX.. Писать данные в tex файл (возможно в уже сформированные шаблоны), а в конце запускать latex to pdf..
?

С LaTeX так и не познакомился до сих пор.
За идею спасибо, почитаем, помедитируем.


Название: Re: Работа с принтером без gui
Отправлено: m_ax от Апрель 15, 2014, 21:42
Цитировать
С LaTeX так и не познакомился до сих пор.
Это знакомство будет полезным)


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 09:56
Хотя появилась идея попытаться указать моему демону переменные среды из Х. Может будет достаточно.

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

Кто касается моего вопроса, курю пока документацию на Hummus http://pdfhummus.com (http://pdfhummus.com)


Название: Re: Работа с принтером без gui
Отправлено: qate от Апрель 16, 2014, 10:00

а чем так плох Xvfb ?
понятно что лишние пакеты и запустить Xvfb надо до программы ? (но ведь получаешь и пользу от gui классов)


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 16, 2014, 10:16
Кто касается моего вопроса, курю пока документацию на Hummus http://pdfhummus.com (http://pdfhummus.com)
А ImageMagick не смотрели для этого, с каким нибудь Magick++?
И скажите пожалуйста, что будет генерироваться в документах: текстовая документация или геометрия?


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 11:05
А ImageMagick не смотрели для этого, с каким нибудь Magick++?
И скажите пожалуйста, что будет генерироваться в документах: текстовая документация или геометрия?

Еще не смотрел, спасибо за наводку, посмотрю...

В основном текстовая, таблицы и т.д.


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 16, 2014, 11:07
В основном текстовая, таблицы и т.д.
Руками html. Точно говорю. :)


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 11:10
Руками html. Точно говорю. :)

Да не вопрос, к тому же html уже формируется и даже более скажу он печатается, но вот только через QTextDocument который не работает в чистой консоли...
Раньше приложение запускалось в Х и проблем не было, все были довольны, а теперь оно переселилось в консоль и стало демоном :) принтеры тут же отпали.


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 16, 2014, 11:13
Да не вопрос, к тому же html уже формируется и даже более скажу он печатается, но вот только через QTextDocument который не работает в чистой консоли...
Не-не. Сами добавляете html-теги, там все очень просто.
Или делаете html-шаблон и заполняете его.


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 11:17
Не-не. Сами добавляете html-теги, там все очень просто.
Или делаете html-шаблон и заполняете его.

Возможно я не совсем понимаю что вы хотите сказать.

У меня есть валидный html со всеми пристанями и пароходами. Если его отправить в CUPS в таком виде как он есть, то я на выходе получу распечатанный исходный код html, а хотелось бы например табличку :)

И я ищу нечто которое или скушает мой html или я каким-нибудь другим образом сформирую документ и в красивом виде смогу его распечатать.


Название: Re: Работа с принтером без gui
Отправлено: carrygun от Апрель 16, 2014, 11:21
Вам, наверное, подойдет вот это (http://xmlgraphics.apache.org/fop/fo.html).


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 11:23
Вам, наверное, подойдет вот это (http://xmlgraphics.apache.org/fop/fo.html).

Спасибо, ознакомлюсь. ;)


Название: Re: Работа с принтером без gui
Отправлено: qate от Апрель 16, 2014, 11:27
Вам, наверное, подойдет вот это (http://xmlgraphics.apache.org/fop/fo.html).

т.е. вместо Xvfb/Х нужно будет иметь apache/java ?


Название: Re: Работа с принтером без gui
Отправлено: Old от Апрель 16, 2014, 12:22
И я ищу нечто которое или скушает мой html или я каким-нибудь другим образом сформирую документ и в красивом виде смогу его распечатать.
Я думал, что конечная цель получить документ, а печатать его будут потом из GUI.


Название: Re: Работа с принтером без gui
Отправлено: Termit от Апрель 16, 2014, 12:28
Я думал, что конечная цель получить документ, а печатать его будут потом из GUI.

Нет, нужна чистая консоль. Вернее даже и консоли не будет - исключительно работа демона.