5

プロジェクトに pdf.js ビューアー ファイルを追加しようとしましたが、Chrome、Mozilla、Safari などのブラウザーで動作しますが、node-webkit と PyQt webkit で一部のページが読み込まれません。

次のように、iframe を使用してファイルをロードしようとしています。

<iframe src="/test/?file=/assets/pdf/example.pdf#page=3"> </iframe>
4

3 に答える 3

6

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_())
于 2014-06-05T03:43:35.627 に答える