wkhtmltopdf未将html转换为pdf


wkhtmltopdf not converting html to pdf

wkhtmltopdf是一个用于将HTML渲染为PDF的开源(LGPLv3)命令行工具。你可以从这里找到更多关于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。

希望我能澄清这个问题。

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

这里有两个问题:

  1. 第二个URL实际上无效。你还记得那句话吗?"垃圾进,垃圾出"?括号不在URL中允许的字符之列,您必须对它们进行转义才能形成有效的URL:

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

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