Приведу это решение здесь.
Выкладываю своё первое решение.
Какое-то время назад мне пришлось столкнуться с задачей создания просмотрщика 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
Я сделал просмотрщик для Win на основе poppler-qt4.
ОтветитьУдалитьМного гемора было с компиляцией либы, но после всё работает почти отлично (не работает подстановка кириллических строк в формы).