wkhtmltopdf是一个开源(LGPLv3)命令行工具,用于将HTML呈现为PDF。您可以从here
找到有关wkhtmltopdf的更多信息 如果输入文件名有特殊字符,则wkhtmltopdf无效。
让我举一个例子来清除scienerio
下面的代码工作正常
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。
希望我能够澄清这个问题。
注意:文件链接由第三方提供,因此我无法更改文件名或文件路径。
答案 0 :(得分:2)
这里有两个问题:
第二个网址实际上无效。你还记得这句话吗? "垃圾进入,垃圾进出"?括号不在URL中允许的字符中,您必须将它们转义为有效的URL:
http://example.com/docs/Export_%28import_data%29_masters.html
您必须考虑以这种方式执行的命令将由exec()
调用调用的shell解释。 Shell解释了它们处理的输入,特别是控制字符。因此,您可能必须在URL参数周围放置引号字符,或者转义某些字符以使其工作。