2009-02-26 11 views
12

का उपयोग करके पीडीएफ को जेपीजी में कनवर्ट करें I पीडीएफ फाइलों को पीएनजी में कनवर्ट करने का प्रयास कर रहा हूं। यह कमांड लाइन से बहुत अच्छा काम करता है (मेरे पास GhostScript 8.64 स्थापित है)। लेकिन PHP से मैं समस्या आ रही है:ImageMagick/Imagick देशी PHP API

कोड:

$im = new Imagick($pdf_file); // this is where it throws the exception below 

उत्पादन:

Fatal error: Uncaught exception ‘ImagickException’ with message ‘Postscript delegate failed `23_1235606503.pdf’: No such file or directory @ pdf.c/ReadPDFImage/612′ in get_thumbnail.php:93 
Stack trace: 
\#0 get_thumbnail.php(93): Imagick->__construct(’…’) 

आदि आदि

मुझे यकीन है कि मैं क्या कर रहा हूँ नहीं कर रहा हूँ यहां गलत है, लेकिन मुझे संदेह है कि मेरे सर्वर कॉन्फ़िगरेशन के साथ कहीं कुछ करना है। मैं चल रहा हूँ: अपाचे 2.2.11 पीएचपी 5.2.8 ImageMagick 6.4.8-9 GhostScript 8.64

उत्तर

18

अंत में यह समझ से बाहर। घोस्टस्क्रिप्ट निष्पादन योग्य (gs) अपाचे के पर्यावरण पथ में नहीं था। यह /usr/local/bin में था। हालांकि मैंने पथ पर /usr/local/bin जोड़ने के कई तरीकों की कोशिश की, लेकिन मैं सफल नहीं हुआ। मैंने /usr/bin directory में gs के लिए एक सिम्लिंक डाला। अब सब कुछ पूरी तरह से काम करता है।

+2

कैसे पता चलेगा कि अपाचे पर्यावरण पथ क्या है? –

+2

बढ़िया! बस जोड़ने के लिए, इस तरह symlink बनाएँ: sudo ln -s/usr/local/bin/gs/usr/bin/gs – Ondrej

+0

'फ़ाइल त्रुटि नहीं पढ़ा जा रहा है' प्राप्त करने पर पकड़ा गया और यह इसे ठीक कर दिया गया। धन्यवाद भाई। –

-4

मैं सफलतापूर्वक यह कर रहा हूं। यहां वह कोड है जिसका उपयोग मैं रूपांतरण करने के लिए कर रहा हूं। हम वाणिज्यिक रूप से इस समाधान का उपयोग कर रहे हैं। मुझे पता है कि यह सवाल थोड़ी देर के लिए बाहर रहा है, लेकिन यह अभी भी आपकी मदद कर सकता है।

//Convert PDF contract to image using ImageMagik and Ghostscript 
// NOTE: This will need to be change if running on Linux 
$source = $appDir."\\".$clientID."\\".$clientID.".pdf"; 
$dest = $appDir."\\".$clientID."\\".$clientID.".jpg"; 
//print("c:\\IM\\convert.exe $source $dest "); 
exec("c:\\IM\\convert.exe $source $dest "); 
+3

cmon bro वह phpapi और आप के लिए पूछता है कुछ exe की सिफारिश ??? एक ब्रेक –

+0

@ करलोसबार्बोसा, 'convert.exe' एक बाइनरी है जिसमें इमेजमैजिक के विंडोज संस्करण (बस' निक्स ओएसएस पर कन्वर्ट ') शामिल है। जबकि मैं मानता हूं कि यह सबसे अच्छा जवाब नहीं है, यह ओपी की समस्या के आसपास काम करने का एक तरीका है। –

+0

कार्लोस का एक बिंदु है। – Dylan

5

मैं इनलाइन ऊपर एक टिप्पणी जोड़ने के Stackoverflow पर "प्रतिष्ठा" की जरूरत नहीं है, लेकिन वहाँ एक अतिरिक्त कदम मैं नवीनतम सिएरा अद्यतन के साथ अपने Mac पर इस काम के प्राप्त करने के लिए प्रदर्शन करने के लिए था।

जब आप आदेश दर्ज करें:

sudo ln -s /usr/local/bin/gs /usr/bin/gs 

मैक पर, आप त्रुटि, "कार्रवाई की अनुमति नहीं" मिल सकता है।

स्पष्ट रूप से ऐप्पल ने एक बदलाव किया है कि "बिन" निर्देशिका संपादन योग्य नहीं है, जब तक आप एसआईपी (सिस्टम इंटीग्रटी प्रोटेक्शन) को अक्षम नहीं करते।

  1. रीबूट recorvery मोड में अपने मैक अपने कंप्यूटर को पुनरारंभ और "कमांड + आर" को दबाए रखते हुए एप्पल लोगो को अपने स्क्रीन पर दिखाई देता है जब तक द्वारा:

    तो यहाँ है कि ऐसा करने के लिए कदम हैं।

  2. उपयोगिताएँ> टर्मिनल
  3. टर्मिनल विंडो में, crutil disable और प्रेस में प्रकार क्लिक करें दर्ज करें ""
  4. अपने मैक को पुनरारंभ करें।

मैं बस इन चरणों के माध्यम से चला गया और अब मेरी घोस्टस्क्रिप्ट महान काम करती है और मैंने सफलतापूर्वक पीडीएफ को जेपीजी में परिवर्तित कर दिया।

+1

टर्मिनल कमांड '' 'csrutil अक्षम '' – JoshOiknine

+0

होना चाहिए इसके बाद मैंने सिस्टम इंटीग्रटी प्रोटेक्शन को फिर से सक्षम किया और घोस्टस्क्रिप्ट अभी भी काम करता है। – Jack70