crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> Печать фалов *.pdf, Как программно из под Qt распечатать существующий файл *.pdf
kexby
  опции профиля:
сообщение 6.2.2013, 14:10
Сообщение #1


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 25.11.2012
Пользователь №: 3607

Спасибо сказали: 0 раз(а)




Репутация:   0  


День добрый.
Подскажите пожалуйста, как можно распечатать уже существующий pdf файл (не путать с QPrinter::setOutputFormat(QPrinter::PdfFormat)).
Данную возможность мне необходимо реализовать в клиентском приложении (серверная часть MS SQL Server, отчетная система MS Reporting Services (RS)).
Pdf файл это как раз результат сформированого отчета службой RS.
Печать Pdf должна быть как с предварительным просмотром док-та, так и без просмотра (сразу на принтер).
Предварительный просмотр Pdf уже реализовал с помощью QWebView. Им же просматриваются отчеты в html формате.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 6.2.2013, 17:02
Сообщение #2


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Это только средствами ОСки (т.е. API)

Могу только костыльный вариант предложить - QDesktopServices::openUrl()
Откроет PDF-ник в ассоциированной программе, а дальше пользователь сам должен будет на печать отправлять.

Ещё можно подсмотреть команды "Печать" в контекстном меню Виндовоза и Графической оболочки *nix систем
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kexby
  опции профиля:
сообщение 7.2.2013, 9:53
Сообщение #3


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 25.11.2012
Пользователь №: 3607

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 6.2.2013, 18:02) *
Могу только костыльный вариант предложить - QDesktopServices::openUrl()
Откроет PDF-ник в ассоциированной программе, а дальше пользователь сам должен будет на печать отправлять.

Спасибо, но этот вариант мне не подходит, т.к. нужна возможность печатать без предварительного просмотра.
Для предварительного просмотра PDF-ник у меня уже открывается в QWebView через ассоциированную программу (в моем случае Foxit Reader).
QWebView* pWV = new QWebView(this);
pWV->settings()->setAttribute(QWebSettings::PluginsEnabled, true);
pWV->load(QUrl("file:///" + [путь к файлу *.pdf]));

Удивительно, что Qt может при печати генерить выходной файл в pdf, а распечатать его не может. :huh:
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 7.2.2013, 18:09
Сообщение #4


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(kexby @ 7.2.2013, 11:53) *
генерить выходной файл в pdf, а распечатать его не может.
дак она его создаёт, как бы печатая в виртуальный принтер.


Цитата(kexby @ 7.2.2013, 11:53) *
PDF-ник у меня уже открывается в QWebView через ассоциированную программу
вот ей и подавать команду печати, через QProcess, например.
В помощь:
Цитата
Path\to\AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
kexby
  опции профиля:
сообщение 8.2.2013, 8:06
Сообщение #5


Новичок


Группа: Новичок
Сообщений: 5
Регистрация: 25.11.2012
Пользователь №: 3607

Спасибо сказали: 0 раз(а)




Репутация:   0  


Цитата(Litkevich Yuriy @ 7.2.2013, 19:09) *
вот ей и подавать команду печати, через QProcess, например.
В помощь:
Цитата
Path\to\AcroRd32.exe /N /T PdfFile PrinterName [ PrinterDriver [ PrinterPort ] ]

спасибо за совет.
Но этот вариант не универсален, не хотелось бы привязваться к конкретной программе, которой на машине пользователя может и не быть
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 8:48