我已經下載並安裝了python-poppler-qt4,我正在試用一個簡單的Qt應用程序來顯示PDF頁面。我遵循我已經能夠從網上獲得的內容,即將PDF轉換爲QImage,然後轉換爲QPixMap,但它不起作用(我得到的只是一個沒有可見內容的小窗口)。如何使用python-poppler-qt4顯示PDF?
我可能在某些時候失敗(QImage.width()
返回我輸入的寬度,QPixMap.width()
返回0)。
下面是代碼:
#!/usr/bin/env python
import sys
from PyQt4 import QtGui, QtCore
import popplerqt4
class Application(QtGui.QApplication):
def __init__(self):
QtGui.QApplication.__init__(self, sys.argv)
self.main = MainWindow()
self.main.show()
class MainWindow(QtGui.QFrame):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.layout = QtGui.QVBoxLayout()
self.doc = popplerqt4.Poppler.Document.load('/home/benjamin/test.pdf')
self.page = self.doc.page(1)
# here below i entered almost random dpi, position and size, just to test really
self.image = self.page.renderToImage(150, 150, 0, 0, 210, 297)
self.pixmap = QtGui.QPixmap()
self.pixmap.fromImage(self.image)
self.label = QtGui.QLabel(self)
self.label.setPixmap(self.pixmap)
self.layout.addWidget(self.label)
self.setLayout(self.layout)
if __name__ == "__main__":
application = Application()
sys.exit(application.exec_())
它在哪裏去錯在這裏?謝謝。
這些轉換(可能會導致分辨率的損失)並不是必需的。看到這個例子顯示PDF:http://bazaar.launchpad.net/~j-corwin/openlp/pdf/annotate/head:/openlp/plugins/presentations/lib/pdfcontroller.py –