PyQt打印原始PDF

时间:2012-09-04 11:09:12

标签: python pdf printing pyqt4

假设我在当前目录中有一个 test.pdf 文件,我想使用 PyQt gui Printer 将此原始文件发送到打印机。

以下Python3代码打印PDF源代码!我不希望Qt为我构建PDF,只需使用gui对话框将其发送到打印机。

这适用于任何操作系统,(无lp命令)...假设打印机设备本身可以理解PDF。

import sys, PyQt4.QtCore, PyQt4.QtGui

def pdf():
    pdf = open('test.pdf', encoding='utf-8').read() # ascii PDF here
    doc = PyQt4.QtGui.QTextDocument(pdf)
    printer = PyQt4.QtGui.QPrinter()
    dialog = PyQt4.QtGui.QPrintDialog(printer)
    if dialog.exec_() == True:
        doc.print_(printer)

if __name__ == '__main__':
    app = PyQt4.QtGui.QApplication(sys.argv)
    w = PyQt4.QtGui.QWidget()
    but = PyQt4.QtGui.QPushButton('Print', w)
    but.clicked.connect(pdf)  
    PyQt4.QtGui.QVBoxLayout(w).addWidget(but)
    w.show()
    sys.exit(app.exec_())

1 个答案:

答案 0 :(得分:1)

内置support用于格式编写文档,但不能用于阅读文档。

要阅读PDF文档,您必须先使用第三方库,或使用外部工具将pdf转换为其他格式(例如text或html)。

有关处理PDF文档的概述,请参阅here