wkhtmltopdf 没有将 html 转换为 pdf

wkhtmltopdf not converting html to pdf

wkhtmltopdf 是一种开源 (LGPLv3) 命令行工具,可将 HTML 呈现为 PDF。您可以从 here

找到有关 wkhtmltopdf 的更多信息

如果输入文件名包含特殊字符,wkhtmltopdf 将无法正常工作。

让我举个例子来清除科学

下面的代码工作正常

shell_exec('wkhtmltopdf http://example.com/docs/Export_import_data_masters.html test.pdf');

但是如果 url 文件名中有括号

,下面的代码将不起作用
shell_exec('wkhtmltopdf http://example.com/docs/Export_(import_data)_masters.html test.pdf');

如果 url 的文件名中有特殊字符,则无法从 url 创建 pdf。

希望我能够解决这个问题。

注意:文件Link由第三方提供,因此我无法更改文件名或文件路径。

这里有两个问题:

  1. 第二个URL其实是无效的。你还记得这句话吗? "Garbage in, garbage out"?方括号不属于 URL 允许的字符,您必须将它们转义以形成有效的 URL:

    http://example.com/docs/Export_%28import_data%29_masters.html

  2. 您必须考虑到您以这种方式执行的命令将由 exec() 调用调用的 shell 解释。 Shell 解释它们处理的输入,尤其是控制字符。因此,您可能必须将引号字符放在 URL 参数周围或转义某些字符才能使事情正常进行。