Выкладываю своё первое решение.
Какое-то время назад мне пришлось столкнуться с задачей создания просмотрщика 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