如何在使用 Python 运行 时停止 wkhtmltopdf.exe 弹出窗口
How to stop wkhtmltopdf.exe pop-up while running it with Python
我正在使用 wkhtmltopdf.exe 使用 python 将 html 转换为 pdf。 wkhtmltopdf.exe 的弹出窗口 window 让我很难在 运行 的同时处理任何其他事情。我必须转换大约 200K+ 个文件,并且必须同时处理其他事情。但是真的不让我干别的。
有没有办法在后台停止这个或 运行 它?
非常感谢您的帮助。
PS。对不起,我是新手,不知道有什么其他方法可以阻止它。
我正在使用 wkhtmltox-0.12.2.2_msvc2013-win64 软件
- 使用
pythonw.exe
启动您的脚本(适用于 .py
和 .pyw
扩展)
- 或为您的脚本使用
.pyw
扩展名(适用于 python.exe
和 pythonw.exe
)
在第二种情况下,确保 .pyw
扩展由 pythonw.exe 处理(右键单击您的 .pyw
脚本 > Open With
并确保 pythonw.exe
是 .pyw
个文件的默认处理程序。
编辑
如果您使用 subprocess.Popen
启动可执行文件,您还可以将 CREATE_NO_WINDOW
标志传递给 creationflags
参数。这个标志是可以传递给Win32 CreateProcess的标志API并且是documented here.
这是一个不在我的计算机上创建任何控制台的示例(确保使用 .pyw
扩展名命名它):
#!/usr/local/bin/python3
# -*- coding: utf8 -*-
import subprocess
import urllib.parse as urlparse # import urlparse for python 2.x
CREATE_NO_WINDOW = 0x08000000 # do not create a new window !
def is_url(url):
parts = urlparse.urlsplit(url)
return parts.scheme and parts.netloc
def main(url, output):
print(url, output)
if not is_url(url):
return -1
proc = subprocess.Popen(["wkhtmltopdf.exe", url, output],
creationflags=CREATE_NO_WINDOW)
proc.wait()
return proc.returncode
if __name__ == "__main__":
url = "https://www.example.com"
output = r"c:\tmp\example.pdf"
rval = main(url, output)
sys.exit(rval)
所以我解决了这个问题!使用 py2exe 使我的 python 文件可执行并使用 .py 文件。
http://www.py2exe.org/index.cgi/Tutorial
不再弹出命令提示符 window。
我正在使用 wkhtmltopdf.exe 使用 python 将 html 转换为 pdf。 wkhtmltopdf.exe 的弹出窗口 window 让我很难在 运行 的同时处理任何其他事情。我必须转换大约 200K+ 个文件,并且必须同时处理其他事情。但是真的不让我干别的。
有没有办法在后台停止这个或 运行 它? 非常感谢您的帮助。
PS。对不起,我是新手,不知道有什么其他方法可以阻止它。
我正在使用 wkhtmltox-0.12.2.2_msvc2013-win64 软件
- 使用
pythonw.exe
启动您的脚本(适用于.py
和.pyw
扩展) - 或为您的脚本使用
.pyw
扩展名(适用于python.exe
和pythonw.exe
)
在第二种情况下,确保 .pyw
扩展由 pythonw.exe 处理(右键单击您的 .pyw
脚本 > Open With
并确保 pythonw.exe
是 .pyw
个文件的默认处理程序。
编辑
如果您使用 subprocess.Popen
启动可执行文件,您还可以将 CREATE_NO_WINDOW
标志传递给 creationflags
参数。这个标志是可以传递给Win32 CreateProcess的标志API并且是documented here.
这是一个不在我的计算机上创建任何控制台的示例(确保使用 .pyw
扩展名命名它):
#!/usr/local/bin/python3
# -*- coding: utf8 -*-
import subprocess
import urllib.parse as urlparse # import urlparse for python 2.x
CREATE_NO_WINDOW = 0x08000000 # do not create a new window !
def is_url(url):
parts = urlparse.urlsplit(url)
return parts.scheme and parts.netloc
def main(url, output):
print(url, output)
if not is_url(url):
return -1
proc = subprocess.Popen(["wkhtmltopdf.exe", url, output],
creationflags=CREATE_NO_WINDOW)
proc.wait()
return proc.returncode
if __name__ == "__main__":
url = "https://www.example.com"
output = r"c:\tmp\example.pdf"
rval = main(url, output)
sys.exit(rval)
所以我解决了这个问题!使用 py2exe 使我的 python 文件可执行并使用 .py 文件。
http://www.py2exe.org/index.cgi/Tutorial
不再弹出命令提示符 window。