1、打印機操作(打印默認文本里面的內容)
from PyQt5 import QtGui,QtWidgets,QtPrintSupport
from PyQt5.QtWidgets import *
import sys
class Printsupport1(QMainWindow):
def __init__(self):
super(Printsupport1,self).__init__()
self.setGeometry(500,200,300,300)
self.button=QPushButton("打印QtextEdit控件中的內容",self)
self.button.setGeometry(20,60,260,200)
self.editor=QTextEdit("默認文本",self)
self.button.clicked.connect(self.print)
def print(self):
printer=QtPrintSupport.QPrinter() #打印機
painter=QtGui.QPainter()
#將繪制的目標重新定向到打印機
painter.begin(printer)
screen=self.editor.grab()
painter.drawPixmap(10,10,screen)
painter.end()
print("print")
if __name__=="__main__":
app=QApplication(sys.argv)
p=Printsupport1()
p.show()
sys.exit(app.exec_())

2、顯示打印樣式設置對話框
from PyQt5.QtPrintSupport import QPageSetupDialog,QPrintDialog,QPrinter
from PyQt5.QtWidgets import *
import sys
class Printdialog(QMainWindow):
def __init__(self):
super(Printdialog,self).__init__()
self.printer=QPrinter() #定義一個默認的打印機
self.initUI()
def initUI(self):
self.setGeometry(300,300,500,400)
self.setWindowTitle("打印對話框")
self.editor=QTextEdit(self)
self.editor.setGeometry(20,20,300,270)
self.openbutton=QPushButton("打開文件",self)
self.openbutton.move(350,20)
self.settingbutton=QPushButton("打印設置",self)
self.settingbutton.move(350,50)
self.printbutton=QPushButton("打印文檔",self)
self.printbutton.move(350,80)
self.openbutton.clicked.connect(self.openfile)
self.settingbutton.clicked.connect(self.showsettingdailog)
self.printbutton.clicked.connect(self.showprintdialog)
#打開文件
def openfile(self):
fname=QFileDialog.getOpenFileName(self,"打開文本文件","./")
if fname[0]:
with open(fname[0],"r",encoding='utf-8',errors='ignore') as f:
self.editor.setText(f.read())
#顯示打印設置對話框
def showsettingdailog(self):
printerdailog=QPageSetupDialog(self.printer,self)
printerdailog.exec()
#顯示打印對話框
def showprintdialog(self):
print1=QPrintDialog(self.printer,self)
if QDialog.Accepted==print1.exec():
self.editor.print(self.printer)
if __name__=="__main__":
app=QApplication(sys.argv)
p=Printdialog()
p.show()
sys.exit(app.exec_())
