我正在使用wkhtmltopdf.exe将html转换为使用python的pdf。 wkhtmltopdf.exe的弹出窗口使我在运行它时很难处理任何其他事情。我必须转换大约200K +文件,并且必须同时处理其他事情。但它真的不让我在其他任何事情上工作。
有没有办法在后台停止或运行它? 我非常感谢你的帮助。
PS。对不起,我是新手,不知道有什么其他方法可以阻止它。
我正在使用wkhtmltox-0.12.2.2_msvc2013-win64软件
答案 0 :(得分:0)
pythonw.exe
启动您的脚本(适用于.py
和.pyw
扩展程序).pyw
扩展名为您的脚本(适用于python.exe
和pythonw.exe
)在第二种情况下,确保.pyw
扩展程序由pythonw.exe处理(右键单击.pyw
脚本> Open With
并确保pythonw.exe
是默认值.pyw
文件的处理程序。)
修改强>
如果使用CREATE_NO_WINDOW
启动可执行文件,也可以将creationflags
标记传递给subprocess.Popen
参数。此标志是一个可以传递给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)
答案 1 :(得分:0)