我有一个azure函数,使用模块pdfkit python将html文件转换为pdf。
这是部署的shell脚本,我安装了wkhtmltopdf,它是成功的。该依赖项安装在位置usr/local/bin/wkhtmltopdf
echo "Starting Installation of wkhtlmtopdf for disclosure document generation..."
export DEBIAN_FRONTEND=noninteractive
apt update
apt install wget
wget https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6-1/wkhtmltox_0.12.6-1.focal_amd64.deb
apt install ./wkhtmltox_0.12.6-1.focal_amd64.deb -y
chmod -R a+rwx /usr/local/bin/wkhtmltopdf
这是我的azure函数代码生成pdf
options = {
'enable-local-file-access': None,
'page-size': 'Letter',
'margin-top': '0.75in',
'margin-right': '0.75in',
'margin-bottom': '0.75in',
'margin-left': '0.75in',
'encoding': "UTF-8",
'custom-header': [
('Accept-Encoding', 'gzip')
],
'no-outline': None
}
config = pdfkit.configuration(wkhtmltopdf='/usr/local/bin/wkhtmltopdf')
pdfkit.from_file('index.html',
'output.pdf',
options=options,
configuration=config)
部署功能后,测试时显示以下错误
No wkhtmltopdf executable found: "/usr/local/bin/wkhtmltopdf" If this file exists please check that this process can read it or you can pass path to it manually in method call, check README. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf
我在这里错过了什么?谢谢你
当你部署平台时,拿走了所有的代码,但没有带走可执行文件,这就是为什么它会给出错误,你需要在azure函数根目录中添加可执行文件,然后安装它。
那么我建议,将整个功能容器化,然后部署在azure中。
关于如何使用docker部署azure功能,请参考以下文档。
请参阅Gabriel Cufaro的以下文章。