vba - SAP GUI 脚本 - 从 pywin32 中的打印屏幕创建 PDF
问题描述
我正在尝试编写一个查看自定义报告的 SAP 流程。报告可以“打印”,然后保存为 pdf。但是,一旦您将“LOCL”指定为输出设备并选中该复选框,它就会进入一个不包含在 gui 脚本输出中的打印屏幕。
有谁知道如何在 vba 或 python 中编写脚本以继续?我附上了弹出的打印对话框的屏幕截图,我无法弄清楚如何在 vba 或 python 中工作。然后出现的第二个对话框是询问文件路径和文件名。
解决方案
使用 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")
推荐阅读
- testing - Flutter:BLoC,测试流
- javascript - JavaScript - Jest / mock 中的模拟控制台“未被调用”
- javascript - 指定第二个默认参数 Javascript
- c# - RabbitMQ 客户端(消费者)的活跃度探测
- ios - 如何将心电图数据存储在 Apple Healthkit 上?
- javascript - Google Maps API 路线服务
- python - 使用通过 python 发送的 firebase 数据集
- python - 确保同名文件始终匹配?
- ethereum - 元掩码私钥
- javafx - 为什么 JavaFX TextField 监听器重复 3 次?