from PySide6.QtWidgets import *
from PySide6.QtCore import *
from PySide6.QtGui import *
from PySide6.QtPrintSupport import*
import sys
class main(QMainWindow):
def __init__(self, parent=None):
super(main, self).__init__(parent)
self.resize(1200, 600)
self.centralwidget = QWidget(self)
self.gridLayout = QGridLayout(self.centralwidget)
self.textEdit = QTextEdit(self.centralwidget)
self.gridLayout.addWidget(self.textEdit, 0, 0, 1, 1)
self.textEdit_2 = QTextEdit(self.centralwidget)
self.gridLayout.addWidget(self.textEdit_2, 0, 1, 1, 1)
self.pushButton = QPushButton(self.centralwidget)
self.pushButton.setText('打印')
self.gridLayout.addWidget(self.pushButton, 1, 0, 1, 1)
self.pushButton_2 = QPushButton(self.centralwidget)
self.pushButton_2.setText('转换')
self.gridLayout.addWidget(self.pushButton_2, 1, 1, 1, 1)
self.setCentralWidget(self.centralwidget)
with open("html.html", "r") as f: # 打开文件
data = f.read() # 读取文件
# self.textEdit.setHtml(data)
self.textEdit_2.setPlainText(data)
self.pushButton_2.clicked.connect(self.trans)
self.pushButton.clicked.connect(self.tprint)
def tprint(self):
self.printer = QPrinter(QPrinter.HighResolution)
preview = QPrintPreviewDialog(self.printer)
preview.paintRequested.connect(self.table2print)
preview.exec()
def table2print(self):
self.textEdit.print_(self.printer)
def trans(self):
self.textEdit.setHtml(self.textEdit_2.toPlainText())
if __name__ == '__main__':
app = QApplication(sys.argv)
window = main()
window.show()
sys.exit(app.exec())
直接复制黏贴测试去吧
大家都到打印这一步了 ,想必上面代码也不用过多解释了吧