我建立了一个GUI,该GUI用文本填充MS Word文件并保存。我被要求包括一个函数,该函数可以直接从GUI打印输出。 当仅打印字符串对象时,以下代码将按预期工作:
from PyQt5.QtWidgets import QTextEdit
from PyQt5.QtPrintSupport import *
def func_print_short(obj_str):
print_content = QTextEdit()
print_content.setText(obj_str)
dlg_print = QPrintDialog()
if dlg_print.exec_() == QDialog.Accepted:
print_content.document().print_(dlg_print.printer())
尝试对MS Word文件使用相同的例程,最后得到了以下代码段,但无法弄清楚如何正确地将文档发送到打印机。
import docx
def send_to_printer(doc):
# -- datatype conversions --
print_content = doc
dlg_print = QPrintDialog()
if dlg_print.exec_() == QDialog.Accepted:
print_content.document().print_(dlg_print.printer())
按预期,由于打印机无法处理接收到的数据,因此无法使用。不幸的是,我在从GUI here打印PDF文件时发现了一个类似的问题,这就是为什么我认为如果没有一些解决方法,我想要实现的目标也将是不可能的。
我还找到了有关打印MS Word文档here的帖子。但是,我不想先将其保存在某处以便能够打印它。
是否可以直接从GUI打印文档?有什么建议如何将文档转换为正确的格式?还是有更好的解决方案,例如暂时保存它,其余使用subprocess
?
提前谢谢!