首页 > 解决方案 > SAP GUI 脚本 - 从 pywin32 中的打印屏幕创建 PDF

问题描述

我正在尝试编写一个查看自定义报告的 SAP 流程。报告可以“打印”,然后保存为 pdf。但是,一旦您将“LOCL”指定为输出设备并选中该复选框,它就会进入一个不包含在 gui 脚本输出中的打印屏幕。

有谁知道如何在 vba 或 python 中编写脚本以继续?我附上了弹出的打印对话框的屏幕截图,我无法弄清楚如何在 vba 或 python 中工作。然后出现的第二个对话框是询问文件路径和文件名。

pywin32 应该可以,但我想不通。 在此处输入图像描述

在此处输入图像描述

标签: vbasappywin32pywinauto

解决方案


使用 pywinauto: 应该会容易得多pip install pywinauto。代码应如下所示:

from pywinauto import Application

# handle Print dialog
app = Application(backend="win32").connect(title="Print") # timeout (in sec.) is optional
app.PrintDialog.OK.click() # or .click_input() for real click
app.PrintDialog.wait_not("visible") # to make sure it is closed

# handle Save dialog
app = Application(backend="win32").connect(title="Save Print Output As") # maybe not needed if it is the same process
app["Save Print Output As"].FileNameEdit.set_text(file_path) # or .type_keys(file_path, with_spaces=True)
app["Save Print Output As"].SaveButton.click() # or .click_input()
app["Save Print Output As"].wait_not("visible")

推荐阅读