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("宋体",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_())

【PyQt5-Qt Designer】读取txt文件在打印的更多相关文章

  1. QT 读取txt文件的几种方法

    废话不说直接上代码 1. QString displayString; QFile file("/home/alvin/text.txt"); if(!file.open(QIOD ...

  2. Qt读取TXT文件时,GBK与UTF-8编码判断

    读取txt文件时,很多时候无法获取文件的编码格式.如果直接进行使用,则有可能出现乱码.需要在使用前将其转为Unicode(Qt的默认编码格式). 虽然实际的编码格式种类非常多,但平常主要使用的有GBK ...

  3. web端自动化——Python读取txt文件、csv文件、xml文件

    1.读取txt文件 txt文件是我们经常操作的文件类型,Python提供了以下几种读取txt文件的方式. 1)read(): 读取整个文件. 2)readline(): 读取一行数据. 3)readl ...

  4. Javascript写入txt和读取txt文件的方法

    文章主要介绍了Javascript写入txt和读取txt文件的方法,需要的朋友可以参考下1. 写入 FileSystemObject可以将文件翻译成文件流. 第一步: 例: 复制代码 代码如下: Va ...

  5. 关于读取txt文件中文乱码问题

    在处理文件的过程中,读取txt文件出现中文乱码.这种情况是由于编码字符不一致导致. public static string ReadFile(string path, string fileName ...

  6. JAVA读取TXT文件、新建TXT文件、写入TXT文件

    1.创建TXT文件 按照正常的逻辑写就好 先定义一个文件给定一个路径——>判断这个路径上这个文件存不存在——>若不存在则建立,try/catch根据程序提示自动生成就好 2.读取TXT文件 ...

  7. 用C#读取txt文件的方法

    1.使用FileStream读写文件 文件头: using System;using System.Collections.Generic;using System.Text;using System ...

  8. C#生成PDF文档,读取TXT文件内容

    using System.IO;using iTextSharp.text;using iTextSharp.text.pdf; //需要在项目里引用ICSharpCode.SharpZipLib.d ...

  9. selenium读取txt文件的几种方式

    1.用java读取txt文件 public static String readFJ(String path) { path = "D:/workspace/hetong.txt" ...

随机推荐

  1. Redis 集群配置

    Redis 集群介绍: (1) 为什么要使用集群:如果数据量很大,单台机器会存在存储空间不够用 .查询速度慢 .负载高等问题,部署集群就是为了解决这些问题(2) Redis 集群架构如下,采用无中心结 ...

  2. hadoop核心逻辑shuffle代码分析-map端

    首先要推荐一下:http://www.alidata.org/archives/1470 阿里的大牛在上面的文章中比较详细的介绍了shuffle过程中mapper和reduce的每个过程,强烈推荐先读 ...

  3. 深入浅出MFC——MFC骨干程序(四)

    1. 熟记MFC类层次结构: 2. AppWizard可以为我们制作出MFC程序骨干: 3. Document/View支撑你的应用程序:Document/View的价值在于,这些MFC类已经把一个应 ...

  4. 在input中既隐藏边框,也隐藏轮廓的设置

    在设置input的时候,我们往往不想显示边框,所以通常会在css里面写"border"none",但是结果往往差强人意,如下图 我们这个时候可以加一个属性来把它的轮廓也隐 ...

  5. 《转载》Linux服务之搭建FTP服务器&&分布式文件服务器的比较

    参考帖子: Linux服务之FTP vsftpd的使用 大型网站图片服务器架构的演进 rsync同步文件的艺术  rsync命令详解 深入理解Tomcat虚拟目录  (测试已经OK)

  6. Linux平台下mysql的ODBC配置方法

    在安装配置之前, 需要先大概了解一下MyODBC的架构. MyODBC体系结构建立在5个组件上,如下图所示: Driver Manager: 负责管理应用程序和驱动程序间的通信, 主要功能包括: 解析 ...

  7. 属性特性get/set

    get/set访问器是属性的特性: 特性只有内部才用,因此在javaScript中不能直接访问他们: (1)数据属性——包含一个数据值的位置.这个位置可以读入和写入值. 数据属性有描述其行为的四个特性 ...

  8. CSS+transform画动态表情

    先给大家看下画完后是什么样子: 代码看这里: html代码: <body> <div class="emoji emoji_like"> <div c ...

  9. Linux 常用查找文件或者文件内容

    举例树形图 .|-- test_dir| `-- dir_test_doc.text|-- test_dir2| |-- dir2_test_doc.txt| `-- dir2_test_doc2.t ...

  10. maven中pom文件中name字段的作用