Можно ли заставить QWebKit отображать pdf файлы? - PullRequest
1 голос
/ 07 июля 2011

У меня есть ссылка в моем QWebkit, которая указывает на файл PDF. Но когда ссылка нажата, она не может отобразить PDF-файл. Есть ли способ сделать это?

Ответы [ 3 ]

3 голосов
/ 07 июля 2011

Если вы включаете плагины с помощью QWebSettings и у вас установлена ​​программа просмотра PDF, которая предоставляет плагин для браузера, такой как Acrobat, то вы должны увидеть PDF, отображаемый с помощью плагина, внутри вашего QWebView:

import sys
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtWebKit import *

app = QApplication(sys.argv)
web = QWebView()
web.settings().setAttribute(QWebSettings.PluginsEnabled, True)
web.show()
web.load(QUrl('file:///C:/test/test.pdf')) # Change path to actual file.
sys.exit(app.exec_())

Этот код не работает для меня в Windows с последней версией Acrobat X (он просто показывает индикатор выполнения, но не PDF - доказательство того, что плагин загружается, просто не работает), но я уверен, что именно так Я делал это раньше. Попробуйте и дайте мне знать.

2 голосов
/ 07 июля 2011

Webkit не включает в себя просмотрщик PDF. Вам понадобится какой-то способ его рендеринга - передаете ли вы его другому вьюеру (Adobe PDF viewer или что-то еще), визуализируйте его в элементе управления каким-то образом, который вы придумаете (вы даже можете попробовать рендеринг в JavaScript для развлечения).

0 голосов
/ 19 ноября 2015

Это код Гэри Хаджеса для PyQt5:

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtWebKitWidgets import *
from PyQt5.QtWebKit import *
from PyQt5.QtCore import *

app = QApplication(sys.argv)
web = QWebView()
web.settings().setAttribute(QWebSettings.PluginsEnabled, True)
web.show()
web.load(QUrl('file:///C:/data/progetti_miei/python/test.pdf')) # Change path to actual file.
sys.exit(app.exec_())
...