栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

pyqt5的 QPrinter 使用模板

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

pyqt5的 QPrinter 使用模板

####说明
这个QPrinter 使用模板,提供了四种打印方式。

一.调用 打印对话框
二.调用 打印预览框
三.直接打印
四.打印到PDF

【如下代码,完全复制,直接运行,即可使用】

from PyQt5.QtGui import QFont,QTextdocument,QTextCursor
from PyQt5.QtWidgets import QApplication, QMainWindow, QLabel, QSizePolicy, QAction,QDialog
from PyQt5.QtPrintSupport import QPrinter, QPrintDialog,QPrintPreviewDialog
import sys

################################################
#######打印文本---《心经》
################################################
the_text = '''
观自在菩萨,行深般若波罗蜜多时,照见五蕴皆空,度一切苦厄。
舍利子,色不异空,空不异色,色即是空,空即是色,受想行识亦复如是。
舍利子,是诸法空相,不生不灭,不垢不净,不增不减。
是故空中无色,无受想行识,无眼耳鼻舌身意,无色声香味触法,无眼界乃至无意识界,无无明亦无无明尽,乃至无老死,亦无老死尽,无苦集灭道,无智亦无得。
以无所得故,菩提萨埵,依般若波罗蜜多故,心无挂碍;无挂碍故,无有恐怖,远离颠倒梦想,究竟涅槃。
三世诸佛,依般若波罗蜜多故,得阿耨多罗三藐三菩提。
故知般若波罗蜜多,是大神咒,是大明咒,是无上咒,是无等等咒,能除一切苦,真实不虚。
故说般若波罗蜜多咒,即说咒曰:揭谛揭谛,波罗揭谛,波罗僧揭谛,菩提萨婆诃。
'''

################################################
#######创建主窗口
################################################
class MainWindow(QMainWindow):
    def __init__(self, parent=None):
 super(MainWindow, self).__init__(parent)
 self.setWindowTitle(self.tr("打印功能"))

 # 创建文本框
 self.label = QLabel()
 self.label.setFont(QFont("Roman times",12,QFont.Bold))
 self.label.setText(the_text)
 self.setCentralWidget(self.label)

 # 创建菜单栏
 self.createMenus()



    def createMenus(self):
 # 创建动作一
 self.printAction1 = QAction(self.tr("打印无预留"), self)
 self.printAction1.triggered.connect(self.on_printAction1_triggered)

 # 创建动作二
 self.printAction2 = QAction(self.tr("打印有预留"), self)
 self.printAction2.triggered.connect(self.on_printAction2_triggered)

 # 创建动作三
 self.printAction3 = QAction(self.tr("直接打印"), self)
 self.printAction3.triggered.connect(self.on_printAction3_triggered)

 # 创建动作四
 self.printAction4 = QAction(self.tr("打印到PDF"), self)
 self.printAction4.triggered.connect(self.on_printAction4_triggered)


 # 创建菜单,添加动作
 self.printMenu = self.menuBar().addMenu(self.tr("打印"))
 self.printMenu.addAction(self.printAction1)
 self.printMenu.addAction(self.printAction2)
 self.printMenu.addAction(self.printAction3)
 self.printMenu.addAction(self.printAction4)



    # 动作一:打印,无预览
    def on_printAction1_triggered(self):
 printer = QPrinter()
 printDialog = QPrintDialog(printer, self)
 if printDialog.exec_() == QDialog.Accepted:
     self.handlePaintRequest(printer)


    # 动作二:打印,有预览
    def on_printAction2_triggered(self):
 dialog = QPrintPreviewDialog()
 dialog.paintRequested.connect(self.handlePaintRequest)
 dialog.exec_()


    # 动作三:直接打印
    def on_printAction3_triggered(self):
 printer = QPrinter()
 self.handlePaintRequest(printer)


    # 动作四:打印到pdf
    def on_printAction4_triggered(self):
 printer = QPrinter()
 printer.setOutputFormat(QPrinter.PdfFormat)
 printer.setOutputFileName("D:/pdf打印测试.pdf")
 self.handlePaintRequest(printer)


    ## 打印函数
    def handlePaintRequest(self, printer):
 document = QTextdocument()
 cursor = QTextCursor(document)
 cursor.insertText(self.label.text())
 document.print(printer)




################################################
#######程序入门
################################################
if __name__ == "__main__":
    app = QApplication(sys.argv)
    main = MainWindow()
    main.show()
    sys.exit(app.exec_())

本文如有帮助,敬请留言鼓励。
本文如有错误,敬请留言改进。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/221642.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号