Russian Qt Forum
Май 07, 2024, 01:51 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Виджет просмотра PDF-файлов  (Прочитано 10076 раз)
Nimbus
Гость
« : Август 29, 2011, 05:09 »

Выкладываю своё первое решение.
Какое-то время назад мне пришлось столкнуться с задачей создания просмотрщика PDF-файлов. Казалось бы что проще - использовать ActiveX от Adobe Reader'а? Но есть ситуации, когда его невозможно использовать - когда на клиентской машине его нет, а чтобы установить требуются права администратора, которых у обычных пользователей нет в обычной конторе. Пришлось заморачиваться, долго гуглить на тему бесплатных и открытых решений, в итоге решение было найдено - библиотека Ghostscript. Это, конечно же, не её прямое предназначение, но не всё же в этом мире используется по его прямому назначению Подмигивающий



В общем, публикую исходники виджета, в связи с частыми вопросами мне в ПМ о том как мне удалось завести это всё дело.
Писал быстро и "на коленке" но работает, правда памяти отъедает немало из-за немалой коллекции пиксмапов, но это оптимизируемо множеством способов, так что, допиливайте по своему желанию как хотите Улыбающийся
Это только для OS Windows. *nix-оиды могут использовать библиотеку Poppler - с ней меньше изврата

По поводу параметров инстанцирования GS можете почитать тут.
Задаются в этом фрагменте кода в файле gswidget.cpp
Код
C++ (Qt)
char *gsargv[10];
gsargv[0] = "-o";
gsargv[1] = "-sDEVICE=pngmono";
gsargv[2] = "-r110";
gsargv[3] = "-sOutputFile=img%d.png";
gsargv[4] = "-dSAFER";
gsargv[5] = "-dBATCH";
gsargv[6] = "-dNOPAUSE";
 

Для использования вам будет необходимо ещё подключить к линковщику gsdll32.lib, а деплоить с gsdll32.dll соответственно

Прикрепить не могу из-за большого размера бинарника Ghostscript'а, поэтому заливаю на файлошару (заранее пардоньте).
http://www.mediafire.com/?8bdmgb01y4xzwal
« Последнее редактирование: Август 29, 2011, 12:31 от JC » Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Август 29, 2011, 09:46 »

Используй нормальные файлошары. Например, http://rghost.ru/
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Nimbus
Гость
« Ответ #2 : Август 29, 2011, 09:48 »

Используй нормальные файлошары. Например, http://rghost.ru/
Я хотел, но там же максимум на 30 дней
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4727



Просмотр профиля WWW
« Ответ #3 : Август 29, 2011, 12:26 »

зарегистрируйся на mediafire например
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Nimbus
Гость
« Ответ #4 : Август 29, 2011, 12:31 »

зарегистрируйся на mediafire например
Ок, спасибо. Обновил ссылку
Записан
ритт
Гость
« Ответ #5 : Сентябрь 06, 2011, 01:45 »

а poppler уже немоден, надо с нуля всё писать?
Записан
Nimbus
Гость
« Ответ #6 : Сентябрь 06, 2011, 05:59 »

а poppler уже немоден, надо с нуля всё писать?
Под Виндой его завести не удалось.
Записан
Sancho_s_rancho
Гость
« Ответ #7 : Сентябрь 06, 2011, 07:08 »

а poppler уже немоден, надо с нуля всё писать?
Под Виндой его завести не удалось.
http://lists.freedesktop.org/archives/poppler/2010-July/006088.html
http://www.overthere.co.uk/2011/03/06/setup-poppler-windows-pyqt/
Ну у кого-то ведь работает.
« Последнее редактирование: Сентябрь 06, 2011, 07:10 от Sancho_s_rancho » Записан
Nimbus
Гость
« Ответ #8 : Сентябрь 06, 2011, 07:37 »

На даты посмотрите - это новое и тогда не нагугливалось. Обошёлся Ghostscrpt'ом, работает и ладно. Никто не жаловался. Займусь на досуге.
Записан
Bloodyhand
Гость
« Ответ #9 : Март 12, 2012, 15:22 »

Спасибо хорошая утилитка, пригодилась на конференции
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.073 секунд. Запросов: 23.