2016-03-31 57 views
1

wkhtmltopdf是一個用於將HTML呈現爲PDF的開源(LGPLv3)命令行工具。你可以從herewkhtmltopdf不將html轉換爲pdf

找到更多關於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

是的,您可以更改文件名 - 使用'file_get_contents()'下載文件,並用簡單的名稱將其保存到文件中。然後可以毫無困難地運行exec命令。 – halfer

回答

2

這裏有兩個問題:

  1. 第二URL實際上是無效的。你還記得那句話嗎? 「垃圾進垃圾出」?支架是不是包含在允許的URL中的字符,你必須逃脫他們形成一個有效的URL:

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

  2. 你必須考慮你以這種方式執行命令會被shell解釋說由exec()調用調用。殼解釋他們處理的輸入,尤其是控制字符。所以你可能需要在URL參數周圍加上引號,或者轉義一些字符以使其工作。

+0

是的,它的工作。謝謝你提醒我一個基本的東西。 –