2011-05-27 9 views
11
से wkhtmltopdf निष्पादित

मैं इस ठीक लिनक्स कमांड लाइन से काम कर रहे:पीएचपी

wkhtmltopdf entry.html output.pdf

लेकिन निम्नलिखित PHP कोड से काम नहीं करता है:

exec ('wkhtmltopdf entry.html output.pdf');

दिलचस्प, मैंने गुमराह किया है और बहुत सारे गैर-जांच किए गए समाधान हैं और कोई स्पष्टीकरण नहीं है कि यह एक समस्या क्यों है। धन्यवाद यदि आपके पास अच्छे हैं।

+4

आप निष्पादन योग्य है, उदा के लिए एक निरपेक्ष पथ निर्दिष्ट करने की आवश्यकता हो सकता है:

ये मेरी आजमाइश कर रहे हैं 'exec (/ usr/bin/wkhtmltopdf ...) ', यदि PHP द्वारा आवंटित उप-खोल आपके मानक डिफ़ॉल्ट खोल की तुलना में एक अलग पथ सेटिंग समाप्त होता है। साथ ही, यदि आप वेब-आधारित स्क्रिप्ट के भीतर से निष्पादन कर रहे हैं, तो अनुमतियां भी एक कारक होने जा रही हैं। –

+0

क्या आपको कोई PHP त्रुटि संदेश मिलता है? क्या होता है जब आप इसे सीधे खोल में टाइप करते हैं? –

+0

@ एलिक्स एक्सेल - कोई त्रुटि –

उत्तर

4

wkhtmltopdf bindings है, उनमें से एक PHP के लिए है। आप उन्हें एक शॉट दे सकते हैं।

+0

दिलचस्प, बस इसे ब्राउज़ किया। हालांकि, आदेश मेरे लिए सबसे आसान है क्योंकि मैं फ्लाई पर रूपांतरण करना चाहता हूं। और फिर, निष्पादन कॉल निष्पादित क्यों नहीं किया जाता है? –

2

शायद wkhtmltopdf www-data के लिए PATH चर में नहीं है।

whereis wkhtmltopdf 

आपको बताएगा कि बाइनरी कहां स्थित है; * निक्स मशीनों पर आमतौर पर द्विआधारी /usr/bin/... में रहते हैं। फिर के साथको बदलें।/usr/bin/wkhtmltopdf इस तरह आपके आदेश में।

/usr/bin/wkhtmltopdf entry.html output.pdf 
+0

हाँ, मैंने कोशिश की है और अभी पुनः प्रयास किया है। काम नहीं करता –

+0

'टाइप-पी 'wkhtmltopdf''' whereis' से अधिक विश्वसनीय है। –

+0

@ एलिक्स एक्सल - एक ही परिणाम (0) –

2

बस यह समस्या थी - मेरे मामले में सरल समाधान: मुझे एहसास नहीं हुआ कि PHP सुरक्षित मोड में था। सुरक्षित मोड बंद कर दिया और यह ठीक काम किया!

8

एक ही समस्या थी और मुझे नहीं लगता किसी और> 3 घंटे बर्बाद करना चाहिए:

समाधान यहाँ है: wkhtmltopdf error in apache log

तुम सिर्फ "एक एक्स-पर्यावरण अनुकरण करने के लिए" xvfp स्थापित करने के लिए है

exec("xvfb-run -a wkhtmltopdf test.html output.pdf") 
+0

यह एक जीवन बचतकर्ता है। अच्छी तरह से काम – Deepak

0

मैं एक ही समस्या से जूझ रहा था।

PHP 5.4 के साथ एक Windows 2008 R2 सर्वर पर मेरे समाधान:

exec('C:\inetpub\wwwroot\mywebsite\subdir\wkhtmltopdf input.html output.pdf'); 

और इस यह था (के बाद> 5 यह सहित शुद्ध खोज घंटे) एक नया output.txt बुलाया फ़ाइल, output.pdf को यह नाम दिया गया और उपयोगकर्ता को 'हर किसी के अधिकार' दें।

exec(C:\inetpub\wwwroot\mywebsite\wkhtmltopdf); 
    echo(exec(wkhtmltopdf.exe cache.html output.pdf)); 
    exec("xvfb-run -a wkhtmltopdf test.html output.pdf") 
    $execute = "xvfb-run -a wkhtmltopdf cache.html output.pdf"; 
    $out = shell_exec("/path/to/wkhtmlto­pdf --version"); echo($out); 
    $out = passthru('/usr/local/bin/wkhtml2pdf 

आशा इन दूसरों के लिए उपयोगी हैं