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。
希望我能澄清这个问题。
注意:文件链接由第三方提供,因此我无法更改文件名或文件路径。
这里有两个问题:
-
第二个URL实际上无效。你还记得那句话吗?"垃圾进,垃圾出"?括号不在URL中允许的字符之列,您必须对它们进行转义才能形成有效的URL:
http://example.com/docs/Export_%28import_data%29_masters.html
-
您必须考虑以这种方式执行的命令将由
exec()
调用调用的shell进行解释。shell解释它们处理的输入,尤其是控制字符。因此,您可能需要在URL参数周围添加引号字符,或者转义一些字符才能使其正常工作。