プロジェクトに pdf.js ビューアー ファイルを追加しようとしましたが、Chrome、Mozilla、Safari などのブラウザーで動作しますが、node-webkit と PyQt webkit で一部のページが読み込まれません。
次のように、iframe を使用してファイルをロードしようとしています。
<iframe src="/test/?file=/assets/pdf/example.pdf#page=3"> </iframe>
プロジェクトに pdf.js ビューアー ファイルを追加しようとしましたが、Chrome、Mozilla、Safari などのブラウザーで動作しますが、node-webkit と PyQt webkit で一部のページが読み込まれません。
次のように、iframe を使用してファイルをロードしようとしています。
<iframe src="/test/?file=/assets/pdf/example.pdf#page=3"> </iframe>
Qt Forums でこのスレッドを見つけました。ここでは、thebeast44 があなたの質問に答える Qt コードのスニペットを投稿しました。私のpythonへの翻訳は以下の通りです。
また、作成者の元のコードから res フォルダーを解凍する必要があります。彼はビューアーを変更しただけだと思います...上記のコードもここに添付しました。
from PyQt4 import QtCore
from PyQt4 import QtGui
from PyQt4 import QtNetwork
from PyQt4 import QtWebKit
class PDFViewer(QtWebKit.QWebView):
pdf_viewer_page = 'res/pdf-viewer.html'
def __init__(self, parent=None):
super().__init__(parent)
self.settings = QtWebKit.QWebSettings.globalSettings()
self.settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessFileUrls, True )
self.settings.setAttribute(QtWebKit.QWebSettings.LocalContentCanAccessRemoteUrls, True )
self.settings.setAttribute(QtWebKit.QWebSettings.DeveloperExtrasEnabled, True )
nam = QtNetwork.QNetworkAccessManager()
page = QtWebKit.QWebPage(self)
page.setNetworkAccessManager(nam)
self.setPage(page)
self.loadFinished.connect(self.onLoadFinish)
self.setUrl(QtCore.QUrl(self.pdf_viewer_page))
def onLoadFinish(self, success):
if success:
self.page().mainFrame().evaluateJavaScript("init();")
if __name__ == '__main__':
import sys
app = QtGui.QApplication(sys.argv)
viewer = PDFViewer(parent=None)
viewer.show()
sys.exit(app.exec_())