0

PDFファイルを表示する機能を備えたアプリケーションを作成しようとしていますが、pdfviewerクラスのためにwxpythonを使用してこれを行うことにしました。

pyPDF2 と pyPdf があることを確認しました。(どちらでも使用できますが、両方をインストールして、それが問題であるかどうかを確認してください。)

ただし、下部のコードを実行すると。(ここから取得) (31 行目と 17 行目の ``` を削除しました。16 行目の .VSCROLL と .SUNKEN_BORDER の前に wx を追加しました) 次のメッセージが表示されます。

Traceback (most recent call last):
  File "E:\Test\pdf.py", line 4, in <module>
    from wx.lib.pdfviewer import pdfViewer, pdfButtonPanel
  File "C:\Python34\lib\site-packages\wx\lib\pdfviewer\__init__.py", line 124, in <module>
    from viewer import pdfViewer
ImportError: No module named 'viewer'

次に、そのパッケージ ファイルに移動して、モジュール ビューアーがそこにあることを確認し、それを実行したところ、124 行目が機能しました。このサンプルファイルを実行すると、アプリケーションにある場合と同じであると想定されますが、機能しません。

これを修正するために私が何をする必要があるか知っている人はいますか?このモジュールは、私がやろうとしていることに完璧に見えます。

ありがとう

import wx
import wx.lib.sized_controls as sc

from wx.lib.pdfviewer import pdfViewer, pdfButtonPanel

class PDFViewer(sc.SizedFrame):
    def __init__(self, parent, **kwds):
        super(PDFViewer, self).__init__(parent, **kwds)

        paneCont = self.GetContentsPane()
        self.buttonpanel = pdfButtonPanel(paneCont, wx.NewId(),
                                wx.DefaultPosition, wx.DefaultSize, 0)
        self.buttonpanel.SetSizerProps(expand=True)
        self.viewer = pdfViewer(paneCont, wx.NewId(), wx.DefaultPosition,
                                wx.DefaultSize,
                                wx.HSCROLL|wx.VSCROLL|wx.SUNKEN_BORDER)
        self.viewer.UsePrintDirect = False
        self.viewer.SetSizerProps(expand=True, proportion=1)

        # introduce buttonpanel and viewer to each other
        self.buttonpanel.viewer = self.viewer
        self.viewer.buttonpanel = self.buttonpanel


if __name__ == '__main__':
    import wx.lib.mixins.inspection as WIT
    app = WIT.InspectableApp(redirect=False)


    pdfV = PDFViewer(None, size=(800, 600))
    pdfV.viewer.UsePrintDirect = False
    pdfV.viewer.LoadFile(r'a path to a .pdf file')
    pdfV.Show()

    app.MainLoop()
4

1 に答える 1

0

pdfviewer を Py3 で動作させるには少し作業が必要でした。私はそのためにPRを行いました。前者は Py3 をサポートしていないため、PR は pyPDF から PyPDF2 に切り替わりません。また、PyPDF2 を Py3 で正しく動作させるために誰かが行った PR 172 にも依存します。

于 2015-04-27T14:37:23.067 に答える