2017-07-03 76 views
0

我使用KnpSnappyBundle在Symfony2應用程序中生成PDF。 它正常工作在我的本地WAMP與配置:如何在Symfony2應用程序中訪問/ wkhtmltox/bin/wkhtmltopdf

binary:  "\"C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe\"" 

我與應用嘗試,但有一個文件夾wkhtmltox在與配置根:

binary:  %kernel.root_dir%/../wkhtmltox/bin/wkhtmltopdf 

它不工作。它會得到以下消息:

The exit status code '127' says something went wrong: 
stderr: "sh: wkhtmltox/bin/wkhtmltopdf: No such file or directory 
" 
stdout: "" 
command: wkhtmltox/bin/wkhtmltopdf --lowquality 
'/tmp/knp_snappy595a4fa89a6676.24945632.html' 
'/tmp/knp_snappy595a4fa89a6a59.72414975.pdf'. 

我正在使用OVH的虛擬主機服務器。

回答

0

你可以嘗試從https://github.com/h4cc/wkhtmltopdf-amd64

需要的軟件包安裝wkhtmltopdf與I386:

composer require h4cc/wkhtmltopdf-i386 "0.12.3"

以及與AMD64:

composer require h4cc/wkhtmltopdf-amd64 "0.12.3"

二進制文件將隨後位於:

vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386 

vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 

對於後者,services.yml看起來就像這樣:

knp_snappy: 
    pdf: 
     enabled: true 
     binary:  '%kernel.root_dir%/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64' 
     options: [] 

    temporary_folder: '%kernel.cache_dir%/snappy' 

通過在供應商文件夾中安裝它,你將沒有更多的是依賴於機器你」上重新運行你的應用。

+0

Thamk你需要你的幫助。現在,我收到以下消息:退出狀態代碼'126'表示出錯: stderr:「sh:/home/procontakq/Configurateur/app/../vendor/h4cc/wkhtmltopdf-amd64/bin/wkhtmltopdf-amd64 :權限被拒絕... –

+0

在這裏找到了答案:https://stackoverflow.com/questions/36065028/permission-denied-with-wkhtmltopdf?rq=1 –

+0

我很高興你找到權限問題的答案。 –

0

我發現這篇文章通過谷歌搜索,所以我張貼我的解決方案,以防它可以幫助某人。

KNP Snappy在我的情況下運行的命令是vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386,我從它得到了「沒有這樣的文件或目錄」錯誤。

我很困惑,因爲我可以看到這個文件,並且它是可執行的:

$ ls -al vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386 
-rwxr-xr-x 1 1000 1000 41424004 Nov 7 09:07 vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386 

但是,當我試圖運行它...

$ vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386 
-bash: vendor/h4cc/wkhtmltopdf-i386/bin/wkhtmltopdf-i386: No such file or directory 

我很困惑,因爲它似乎錯誤是可執行文件不存在,而且顯然確實存在。

事實上,問題是,我試圖使用可執行的32位版本,我的機器是64位:

$uname -a 
Linux mybox 3.2.0-4-amd64 #1 SMP Debian 3.2.54-2 x86_64 GNU/Linux 

(見amd64部分)

所以我不得不在config.yml中更新這個位:

knp_snappy: 
    pdf: 
     binary: # this was the path to the 32-bit executable; I had to update it to use the 64-bit version. 
相關問題