📌  相关文章
📜  wkhtmltopdf 阻止访问文件 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:05:58.474000             🧑  作者: Mango

wkhtmltopdf 阻止访问文件

简介

wkhtmltopdf 是一个开源的命令行工具,可以将 HTML 文档转换为 PDF。它使用 Qt WebKit 作为其底层渲染引擎,可以在各种平台上运行。

本文将介绍如何解决 wkhtmltopdf 在转换 HTML 文档时出现阻止访问文件的问题。

问题描述

当使用 wkhtmltopdf 将一个包含本地文件链接的 HTML 文档转换为 PDF 时,会出现阻止访问文件的问题,如下所示:

Loading pages (1/6)
[>                                                           ] 0%
[======>                                                     ] 10%
Error: Failed loading page file:///path/to/your/file.html (sometimes it will work just to ignore this error with --load-error-handling ignore)
Exit with code 1, due to unknown error.

这是因为默认情况下,wkhtmltopdf 不允许访问本地文件。如果你需要访问本地文件,则需要使用以下命令:

wkhtmltopdf --allow ../../path/to/your/file.html output.pdf

但是这并不总是奏效。有时候,即使使用了 --allow 参数,wkhtmltopdf 仍然无法访问本地文件。

解决方案

解决这个问题有两种方法:一种是使用 --disable-local-file-access 参数,另一种是使用 --enable-plugins 参数。

方法一:使用 --disable-local-file-access 参数

使用 --disable-local-file-access 参数可以禁用 wkhtmltopdf 访问本地文件的功能。这个参数可以确保转换进程不会试图读取磁盘上的任何东西,从而防止出现安全问题和文件访问错误。

wkhtmltopdf --disable-local-file-access file:///path/to/your/file.html output.pdf
方法二:使用 --enable-plugins 参数

使用 --enable-plugins 参数可以启用插件支持。插件支持可以让 wkhtmltopdf 访问某些文件,包括一些需要在 PDF 中显示的内容,例如 Flash 动画。

wkhtmltopdf --enable-plugins file:///path/to/your/file.html output.pdf
总结

wkhtmltopdf 是一个功能强大的工具,可以将 HTML 文档转换为 PDF。但是,当涉及到访问本地文件时,可能会遇到阻止访问文件的问题。本文介绍了两种解决方法,你可以根据你的需求选择其中一种来解决这个问题。