从PyQt GUI打印MS Word .docx

时间:2019-03-29 08:39:43

标签: python pyqt pyqt5

我所拥有的

我建立了一个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

提前谢谢!

0 个答案:

没有答案