2012-12-09 29 views
11

पर wkhtmltopdf का उपयोग करके मैं wkhtmltopdf नामक छवि प्लगइन में निफ्टी एचटीएमएल स्थापित करने की कोशिश कर रहा हूं और मुझे वास्तव में कठिन समय है।विंडोज

मैं अब तक क्या किया:

  1. डाउनलोड किया wkhtmltopdf ज़िप पैकेज और रूट फ़ोल्डर

  2. मेरी वेबसाइटों में फ़ाइल upacked एक परीक्षण के रूप में मैं अपने index.php में निम्न कोड शामिल फ़ाइल, जो मैं bbc.com वेबसाइट की सामग्री को मेरी वेबसाइटों में .jpg छवि के रूप में सहेजने की अपेक्षा करता हूं रूट फ़ोल्डर: ..

    shell_exec ('./ wkhtmltopdf --quality 50 http://www.bbc.com bbc.jpg ');

कुछ भी नहीं होने लगता है। PHP सुरक्षित मोड में चल रहा है, इसलिए यह समस्या नहीं है। shell_exec निष्पादित हो रहा है, मैं इसका उपयोग कर .txt दस्तावेज़ बनाने में सक्षम था।

मैं दिनों के लिए इस शोध किया गया है, मैं किसी को 100 इनाम कि कैसे PHP का उपयोग चलाने के बारे में विधवाओं wkhtmltopdf स्थापित करने के लिए पर एक स्पष्ट, सरल बनाया कदम-दर-कदम काम कर गाइड के साथ साथ आने कर सकते हैं की पेशकश कर रहा हूँ । php का उपयोग कर विंडोज पर चलने के लिए

  • wkhtmltopdf सेट करें (आम समस्याओं और उन्हें कैसे दूर करने के लिए पर शामिल विवरण):

    अधिक विशेष रूप से मैं सरलीकृत माध्यम से गुजरने के कैसे करने के लिए पर देख रहा हूँ।

  • बटन या लिंक पर क्लिक करने के लिए: 'वर्तमान' वेब पेज को पीडीएफ पर प्रिंट करें, जिसमें सभी इनपुट मान शामिल हैं (इस भाग के लिए नमूना कोड शामिल करें)। पृष्ठ की सामग्री को बदलने वाली घटनाओं वाले वेबपृष्ठों को पृष्ठ के प्रारंभिक अवस्था को वर्तमान संस्करण पृष्ठ मुद्रित करना चाहिए।

  • बनाया गया .pdf का एक डाउनलोड लिंक बनाएं, ऊपर वर्णित एक ही फ़ंक्शन का क्लिक करें जो पीडीएफ को बनाता है और प्रिंट करता है (इस भाग के लिए नमूना कोड शामिल करें)।

+0

PHP के बाहर, कमांड लाइन पर प्रोग्राम का आह्वान करते समय क्या होता है? क्या यह काम करता है? – Charles

+0

मैं विंडोज़ पर php स्क्रिप्ट में linux कमांड चला रहा हूं, इसलिए मुझे यकीन नहीं है कि मैं इसे सीधे कमांड लाइन से कैसे चला सकता हूं। – AnchovyLegend

+0

सर्वर में एसएसएच और फिर कोशिश करें? यह देखने के लिए कि क्या वे एसएसएच का समर्थन करते हैं, आपको अपने मेजबान से जांच करनी पड़ सकती है। उनके पास ऐसा करने पर भी एक छोटा सा ट्यूटोरियल है। संभावना है कि यह कुछ आसान है, जैसे खराब अनुमतियां, लेकिन सर्वर पर कमांड लाइन पर पता लगाना सबसे आसान होगा। – Charles

उत्तर

8

यह वास्तविक बनाना है कि यहां वास्तविक समस्या क्या है लेकिन मैंने a blag post tutorial on getting wkhtmltopdf to respond in a Windows 7/PHP Environment बनाया है। पूछें कि क्या आपको और जानकारी चाहिए - मुझे यकीन है कि इसमें आपकी समस्या शामिल नहीं है।

जैसा कि मैंने टिप्पणियों में भी कहा था, आपकी फ़ंक्शन कॉल shell_exec('./wkhtmltopdf --quality 50 http://www.bbc.com bbc.jpg'); विफल हो जाएगी क्योंकि wkhtmltopdf और wkhtmltoimage विभिन्न प्रोग्राम हैं और विभिन्न कमांड लाइन विकल्प स्वीकार करते हैं। उस कमांड में wkhtmltoimage के साथ wkhtmltopdf को बदलें और आपको उत्पन्न आउटपुट फ़ाइल मिल सकती है। मेरा मानना ​​है कि आपके मामले में shell_exec('c:\wkhtmltopdf\wkhtmltopdf www.google.com goog.pdf 2>> err3.txt 1>> out3.txt'); जैसे परीक्षण निष्पादन सबसे दिलचस्प होंगे क्योंकि आप wkhtmltopdf करता है कि सभी अलग इनपुट/आउटपुट देख सकते हैं।

9

मुझे एहसास है कि यह एक पुराना सवाल है, लेकिन चूंकि यह एकमात्र लाइब्रेरी है जिसे मैंने पाया है कि एचटीएमएल से पीडीएफ में प्रिंट होगा और छवियों और पृष्ठभूमि रंगों को बनाए रखेगा, मैं विंडोज कमांड प्रॉम्प्ट का उपयोग करता हूं। मैं पीडीएफ आर्किटेक्ट का उपयोग करता था, लेकिन यह पृष्ठभूमि रंगों को संभालने में कभी सक्षम नहीं था।

जब आप wkhtmltopdf स्थापित करते हैं, तो यह या तो c: \ Program Files \ wkhtmltopdf \ या c: \ Program Files (x86) \ wkhtmltopdf में जाएगा।

मान लें कि आपके पास एक स्थानीय PHP वातावरण है जहां http://localhost/ आपके शुरुआती बिंदु के रूप में स्थापित किया गया है। आइए यह भी कहें कि आपके पास html_invoice.html नामक एक फ़ाइल है और आप इसे dev_invoice_200.pdf नामक फ़ाइल में प्रिंट करना चाहते हैं और इसे xampp वेब सर्वर के अंदर अपने चालान फ़ोल्डर में डाल दें।

c:\Program Files\wkhtmltopdf\bin\wkhtmltopdf http://localhost/html_invoice.html c:\xampp\htdocs\invoices\dev_invoice_200.pdf 

यह पीडीएफ पैदा करेगा: और प्रकार है कि ऐसा करने के लिए, यदि आप Windows कमांड प्रॉम्प्ट (-> सभी कार्यक्रम -> सहायक उपकरण -> कमांड प्रॉम्प्ट या प्रारंभ - -> भागो> cmd यानी प्रारंभ) ऊपर से निकाल देते थे सही जगह में।

चूंकि हम Windows कमांड प्रॉम्प्ट का उपयोग कर रहे हैं, इसलिए वास्तव में PHP का उपयोग करने का कोई कारण नहीं है। इसके बजाए, हम बैच फ़ाइल का उपयोग कर सकते हैं, और यदि हमें इसे स्वचालित करने की आवश्यकता है, तो हम बैच फ़ाइल (स्टार्ट -> सभी प्रोग्राम्स -> सहायक उपकरण -> सिस्टम टूल्स -> टास्क शेड्यूलर) को कॉल करने के लिए विंडोज टास्क शेड्यूलर का उपयोग कर सकते हैं।

यदि आपने बैच फ़ाइलों को कभी नहीं किया है, तो आप केवल उन आदेशों को टाइप करें जिन्हें आप सादा पाठ फ़ाइल में करना चाहते हैं और इसे .bat एक्सटेंशन से सहेजना चाहते हैं।

तो मान लें कि हम हमेशा उसी साइट पर html_invoice.html को devoinvoice.pdf के नाम से चालान फ़ोल्डर में प्रिंट करना चाहते हैं और हम वहां जाने के बाद नाम बदलने जा रहे हैं। आप बस "_200" से ऊपर की रेखा को एक टेक्स्ट फ़ाइल में डाल देंगे और इसे .bat के रूप में सहेजें और फिर विंडोज़ पर डबल-क्लिक करें या इसे टास्क शेड्यूलर के माध्यम से चलाएं।

+0

धन्यवाद जो मुझे बहुत मदद करता है :) सब कुछ ठीक काम करता है –