Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba SAP GUI脚本-在pywin32中从打印屏幕创建PDF_Vba_Sap_Pywin32_Pywinauto - Fatal编程技术网

Vba SAP GUI脚本-在pywin32中从打印屏幕创建PDF

Vba SAP GUI脚本-在pywin32中从打印屏幕创建PDF,vba,sap,pywin32,pywinauto,Vba,Sap,Pywin32,Pywinauto,我正在尝试编写一个SAP流程脚本,它查看自定义报告。报告可以“打印”,然后保存为pdf格式。但是,一旦您将“LOCL”指定为输出设备并选中复选框,它将转到gui脚本输出中不包含的打印屏幕 有人知道如何用vba或python编写脚本以继续吗?我附上了一个弹出的打印对话框的屏幕截图,我不知道如何在vba或python中工作。然后出现第二个对话框,询问文件路径和文件名 使用pywin32应该是可能的,但我想不出来。 使用pywinauto应该更容易:pip安装pywinauto。代码应该如下所示:

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

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

使用pywin32应该是可能的,但我想不出来。


使用pywinauto应该更容易:
pip安装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")