python - 从 PyQt GUI 打印 MS Word .docx
问题描述
我有什么
我构建了一个 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 打印 PDF 文件的类似问题,这就是为什么我认为如果没有一些解决方法也可能无法实现我想要实现的目标。
我还在这里找到了关于打印 MS Word 文档的帖子。但是,我不想先将它保存在某个地方以便能够打印它。
我的问题
有没有办法直接从 GUI 打印文档?任何建议如何将文档转换为正确的格式?还是有更好的解决方案作为暂时保存并subprocess
用于其余部分?
先感谢您!
解决方案
推荐阅读
- javascript - 如何将 JavaScript 变量链接到 HTML 值?
- database - 在 Firestore 中更新值时没有字段错误
- wordpress - Wordpress 基本类别名称更改/仅针对一个类别的永久链接
- python - 在生产中调试 = False 时出现 500 服务器错误
- c# - 使用 LINQ 基于单个属性过滤 EntityCollection:
- regex - UltraEdit(或 MacOS 正则表达式):删除 xml 中的多行
- android - 搜索 .droid 和 .yydebug 编辑器的编辑器
- rust - 如何为实现特定特征的所有类型大规模实现反序列化?
- javascript - 错误创建映射{错误:[mapper_parsing_exception]没有在字段[类别]上声明的类型[字符串]的处理程序
- java - 如何使用不同的实现异步调用多个方法