Название: QT4 и pdf Отправлено: [Matrix] от Сентября 09, 2011, 00:31 необходимо отображать pdf файлы в qt приложении. Пока что выбор пал на poppler, но не знаю получится ли собрать с помощью mingw и использовать его на windows. Интересует возможность использования его в приложениях с закрытым исходным кодом, будет использоваться через qt4, которая идет с lgpl...
Название: Re: QT4 и pdf Отправлено: Nimbus от Сентября 09, 2011, 16:50 Тынц (http://www.prog.org.ru/index.php?topic=19251.msg130445#msg130445)
Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 09, 2011, 19:46 да, я читал это все вчера + гугл, получается что скомпилированные библиотеки можно взять из okular который в kdewin, относительно лицензий получается что я его буду использовать через qt4, которая под lgpl, собственно исходные тексты можно не показывать никому
вопрос только как dll к проекту подцепить собственно интересует вопрос о не предоставлении исходных текстов да, похоже сложно все с popplerom, пошел искать дальше склоняюсь в сторону QAxWidget, осталось разобраться с лицензиями и загрузкой pdf Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 11, 2011, 10:14 нашел вариант, который меня устраивает - загрузка pdf в QWebView
Код: QString html = QString ("<html>\n" первоисточник http://lists.qt.nokia.com/pipermail/qt-interest/2010-June/024543.html не совсем подходит однако, нужна фильтрация ссылок которые есть в документе Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 11, 2011, 21:33 более точно задача стояла так - отображать в qt приложении pdf документы, в которых должны быть ссылки, которые должны обрабатываться специальным образом в приложении (типа команды для приложения).
1 способ это написать драйвер для adobe, который будет обрабатывать ссылки. Затем после загрузки pdf документа с использованием QAxWidget, найти плагин загруженный acrobat'ом и проинициализировать его указателем на свой класс, которому будут передаваться ссылки и он их будет обрабатывать. 2 способ - загружать pdf с использованием html в qwebview. Для обмена данными использовать так называемый HostContainer. В качестве ссылок в pdf будут выступать куски кода на java - setAction(postMessage("ссылка_которую_нужно_обработать")). Затем после получения сообщения в html нужно сообщить о сообщении еще выше - QWebView. ____ на данный момент прорабатываю эти варианты на предмет реализации все намного проще благодаря dumpcpp и QAxWidget Название: Re: QT4 и pdf Отправлено: PavelVX от Сентября 16, 2011, 10:46 Как у вас получилось это запустить?
Установил ридер 9. Код: QString html = QString ("<html>\n" Если же этот же код поместить в pdf.html и попробовать открыть через IE, то откроются панели инструментов ридера PDF, сам документ будет под ними, размером с эти панельки. :(. Мне нужно всего лишь показать его в Qt? Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 16, 2011, 14:34 да, pdf это та еще задача, отображение - это вс просто, а учет ссылок - жесть, как-будто в не могли разработчики сделать еще дополнительную обработку ссылок через свой класс путем регистрации callback.
PavelVX значит если нужно только отобразить, тогда задача решается следующим образом в QT-консоли выполняется команда dumpcpp.exe AcroPDF.PDF - получаются 2 файла, которые нужно добавить в проект. Полученный класс создается на основе COM-объекта от adobe. Далее все сводится к вызову одного только метода load(имя_файла). Подробности смотри в примере во вложении, там показана загрузка файла. Пример этот я где-то находил и немного изменил относительно Html - достаточно Код: <html> Название: Re: QT4 и pdf Отправлено: PavelVX от Сентября 16, 2011, 16:55 в QT-консоли выполняется команда dumpcpp.exe AcroPDF.PDF - получаются 2 файла, которые нужно добавить в проект. Полученный класс создается на основе COM-объекта от adobe. Тут наверное имелось ввиду AcroPDF.DLL! Создал я таким образом 2 файла: cpp + h. Но твой маленький пример не работает :( Подумал, вдруг версии разные и заменил в твоем примере эти файлы на вновь созданные поверх, тоже не помогло. Окно открывается, появляется белый квадрат и тишина. :(. Также создал html файлик с твоим кодом. Скормил его IE, он переспросил, можно ли запускать доп компоненты, я согласился и только тогда он открыл pdf. Может в этом и проблема: в виджете не выскакивают предупреждения безопасности, поэтому все повисает и наступает облом :(. Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 16, 2011, 17:15 у меня в виджете работает все, в браузере спрашивает про компоненты
Название: Re: QT4 и pdf Отправлено: PavelVX от Сентября 16, 2011, 17:59 А sdk какой версии?
Можешь прям готовую прогу выложить на какой-нить обменник? Я сейчас начал сливать последний sdk под вин, может в этом проблема. Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 17, 2011, 18:23 прога не поможет, там в итоге получается завязка на адобовские библиотеки, полученный класс - это всего лишь интерфейс к их функциям. Я использовал 10-ю версию. потому что нужно было обрабатывать postMessage от документа
Название: Re: QT4 и pdf Отправлено: [Matrix] от Сентября 22, 2011, 15:57 да, есть косяк в qt, может загружаться и отображаться pdf в qwebview, если отображать QWebView как show(), если вместо show() сделать его элементом диалога layout()->addWidget(webView), тогда не отображает. Если перед этим отобразить как show какой-нибудь pdf, потом другой объект Qwebview встроить в форму, тогда отображает
Название: Re: QT4 и pdf Отправлено: PavelVX от Сентября 29, 2011, 15:20 к сожалению .. толи лыжи не едут, толи у меня опыта нет , но не показывает pdf :(
в качестве pdf просмотрщака стоит foxit reader 5. Код: #include <QtGui/QApplication> |