设想
我在 BSD jail 中运行 Odoo 版本 10。直到最近,所有功能都运行良好,我不知道有任何变化。我安装的 Odoo 已失去使用 wkhtmltopdf 生成 PDF 的功能。当我尝试打印报告时,收到以下信息:
Unable to find Wkhtmltopdf on this system. The report will be shown in html.
当我尝试通过电子邮件发送报告时,收到以下信息:
Unable to find Wkhtmltopdf on this system. The PDF can not be created.
采取的措施
我登录到服务器来检查 wkhtltopdf 是否安装在同一个 BSD jail 中。
# pkg version -vR | grep wkhtmltopdf
wkhtmltopdf-0.12.3.2 = up-to-date with remote
已更新。可能不在环境中。
# cd /usr/bin
# ls -l wkhtml*
ls: whktmltopdf: No such file or directory
它至少在本地环境中吗?
# cd /usr/local/bin
# ls -l wkhtml*
-rwxr-xr-x 2 root wheel 49432004 Dec 12 07:41 wkhtmltoimage
-rwxr-xr-x 2 root wheel 49536598 Dec 12 07:41 wkhtmltopdf
好的,所以也许它需要全局环境中的链接。
# cd /usr/bin
# ln -s /usr/local/bin/wkhtmltopdf wkhtmltopdf
# ln -s /usr/local/bin/wkhtmltoimage wkhtmtoimage
尝试打印并通过电子邮件发送报告,但仍然遇到同样的问题。
我也尝试看看 wkhtmltopdf 是否正常工作。
# wkhtmltopdf http://wkhtmltopdf.org testpdf.pdf
这成功生成了 PDF。
你能如何提供帮助
- Odoo 中的某些设置是否指向了错误的位置?
- 我可能忽略了一些故障排除步骤吗?
- 我怎样才能重新获得这一重要功能?
- 编辑 -
我验证了PATH
监狱内 Odoo 应用程序的用户。
我在原帖中还看到我忘了提到我尝试过多次重启,包括简单的服务重启、越狱重启,甚至硬启动服务器机器本身。所有重启似乎都没有任何效果。我还确保在重试之前清除了浏览器缓存。
当我在编写一个无关的脚本来远程重启特定的 jail 时,我使用 Odoo jail 作为我的实验对象。在测试和微调这些脚本时,它一定经历了六次重启。看来这就是它所需要的。jail 需要停止和启动六次。
但是出现了一个新错误。它可以很好地找到 wkhtmltopdf,但找不到其他资源。进行了与 wkhtmltopdf 相同的所有检查,没有任何异常。运行了我的远程 jail 重启脚本,目前一切正常。
答案1
确保 /usr/local/bin 位于监狱内运行 Odoo 的用户的 PATH 中。
答案2
按照以下步骤操作
https://downloads.wkhtmltopdf.org/0.12/0.12.1/wkhtmltox-0.12.1_linux-trusty-amd64.deb
dpkg -i wkhtmltox-0.12.1_linux-trusty-amd64.deb
sudo cp /usr/local/bin/wkhtmltopdf /usr/bin
sudo cp /usr/local/bin/wkhtmltoimage /usr/bin
set system parameter in settings in odoo
key: webkit_path
value: /usr/bin/wkhtmltopdf