我想根据给定的 URL 将
HTML
页面转换为 PDF 文件。我尝试过使用 pdfkit
,但它会引发以下错误:
[WinError 740] The requested operation requires elevation.
代码:
import pdfkit
path_wkthmltopdf = "D:\\w.exe"
config = pdfkit.configuration(wkhtmltopdf = path_wkthmltopdf )
pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)
输出错误:
n [42]: import pdfkit
path_wkthmltopdf = "D:\\w.exe"
config = pdfkit.configuration(wkhtmltopdf = path_wkthmltopdf )
pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)
Traceback (most recent call last):
File "<ipython-input-42-58323936ac63>", line 5, in <module>
pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)
File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\pdfkit\api.py", line 26, in from_url
return r.to_pdf(output_path)
File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\pdfkit\pdfkit.py", line 129, in to_pdf
stderr=subprocess.PIPE)
File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 143, in __init__
super(SubprocessPopen, self).__init__(*args, **kwargs)
File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\subprocess.py", line 729, in __init__
restore_signals, start_new_session)
File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\subprocess.py", line 1017, in _execute_child
startupinfo)
OSError: [WinError 740] The requested operation requires elevation
我也遇到了这个问题,我通过运行 .exe 解决了这个问题,运行后它将创建新的目录,进入这个目录然后 bin 目录你会在那里找到一个 exe 文件,例如 C:\Program Files\wkhtmltopdf 中\wkhtmltopdf.exe 因此,将“D:\w.exe”替换为代码中的上述路径即可工作
您很可能会因为下载了 Installer 版本但未安装而出现该错误。因此,当配置中的
wkhtmltopdf
指向该可执行文件(需要提升权限)运行代码时,您会收到以下错误:
OSError: [WinError 740] The requested operation requires elevation
您可以通过运行该
Installer版本并选择目标文件夹(假设为
wkhtmltopdf
)来安装 C:\Program Files
。您将在 wkhtmltopdf.exe
文件夹中找到需要添加到配置中的 bin
文件。因此,您应该按如下方式使用:
config = pdfkit.configuration(wkhtmltopdf=r'C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe')
pdfkit.from_url('http://google.com', 'out.pdf', configuration=config)
另一个解决方案是下载
7z Archive
版本,解压文件,您也会在 wkhtmltopdf.exe
文件夹下找到 bin
。
当我没有完成 wkpdftohtml 库的完整安装时,我遇到了这个问题。打开包装后,无需提升即可运行。