2010-03-26 18 views
5

में पीडीएफ फ़ाइल उत्पन्न करने के लिए php और TCPDF का उपयोग नहीं कर रहा है। जब मैं ImageEPS() का उपयोग कर पीडीएफ में एक ईपीएस छवि लिखने की कोशिश करता हूं तो सबकुछ बढ़िया काम करता है। कुछ भी नहीं दिखाता है। कोई त्रुटि नहीं (यह निश्चित रूप से फ़ाइल पा सकती है)। यह सिर्फ सफेद जगह के रूप में दिखाई देता है।ईपीएस छवि (इनक्सकेप से) टीसीपीडीएफ

रास्टर छवियां (जैसे पीएनजी/जेपीजी) बस ठीक काम करती हैं।

मैं .eps फ़ाइल को सहेजने के लिए Inkscape का उपयोग कर रहा हूं। जब मैं किसी अन्य प्रोग्राम में फ़ाइल खोलता हूं, तो यह ठीक है। इसका एकमात्र टीसीपीडीएफ है जो इसके साथ प्रदर्शित नहीं हो रहा है।

उत्तर

3

मैंने एडोब इलस्ट्रेटर में अपनी * .ai फ़ाइल खोल दी थी और फ़ाइल को उस समस्या को दूर करने के लिए "इलस्ट्रेटर 3" संस्करण के रूप में सहेज लिया था। आपके द्वारा वर्णित परिणामों का कोई और अधिक संस्करण उत्पन्न हुआ ("इलस्ट्रेटर 8" को छोड़कर, जिसने मुझे मेरी * .ai फ़ाइल का बी & डब्ल्यू संस्करण दिया)।

+0

मैं टीसीपीडीएफ लाइब्रेरी का भी परीक्षण कर रहा हूं और दुख की बात है, मुझे लगता है कि केवल इलस्ट्रेटर 3 फाइलें काम करती हैं। मैं पुष्टि कर सकता हूं कि जब मैं इलस्ट्रेटर 8 करता हूं, तो यह लगभग सभी काला होता है (बी और डब्ल्यू नहीं, भूरे रंग का पाठ आता है, लेकिन कोई वेक्टर कलाकृति रंग नहीं) और इलस्ट्रेटर 9 और ऊपर बिल्कुल काम नहीं करते हैं। – Josh

2

थोड़ा देर हो चुकी है, लेकिन मुझे एक ही समस्या थी।

मेरे लिए, वैकल्पिक हल के साथ पीडीएफ के रूप में निर्यात और/FPDI TCPDF में इस पीडीएफ पुन: उपयोग करने गया था:

$num_pages = $pdf->setSourceFile(path_to_file); 
$template_id = $pdf->importPage(1); //if the grafic is on page 1 
$pdf->useTemplate($template_id,$x,$y,$width,$height); 
0

TCPDF (6.0.004) में ImageEPS समारोह पूरी तरह से लागू नहीं किया गया है और कहा गया है प्रलेखन निम्नलिखित:

/** 
* Embed vector-based Adobe Illustrator (AI) or AI-compatible EPS files. 
* NOTE: EPS is not yet fully implemented, use the 
* setRasterizeVectorImages() method to enable/disable rasterization of 
* vector images using ImageMagick library. 
* ... 
*/ 
public function ImageEps(...){/*...*/} 

टीसीपीडीएफ (6.0.004) अपने निर्माता के लिए एक ईपीएस मेटा-डेटा की जांच करता है। यदि निर्माता एडोब इलस्ट्रेटर है, तो संस्करण की जांच की जाती है और यदि संस्करण 8 से ऊपर है तो एक त्रुटि उत्पन्न होती है। एडोब इलस्ट्रेटर के अलावा अन्य निर्माता चेक नहीं किए गए हैं और फ़ंक्शन को जारी रखने की अनुमति है। ऐसा लगता है कि टीसीपीडीएफ पीएस प्रोलॉग को पार नहीं करता है और शायद यही कारण है कि सभी एआई संस्करण समर्थित नहीं हैं। यहां बताया गया है PostScript Language Reference prolog अनुभाग के बारे में कहते हैं:

  • prolog आवेदन विशेष प्रक्रिया परिभाषाएँ है कि एक आवेदन tion अपनी स्क्रिप्ट के कार्य निष्पादन में उपयोग कर सकते हैं का एक सेट है। इसे एप्लिकेशन द्वारा उत्पन्न प्रत्येक पोस्टस्क्रिप्ट फ़ाइल के पहले भाग के रूप में शामिल किया गया है। इसमें पोस्टस्क्रिप्ट भाषा द्वारा समर्थित क्षमताओं के साथ अनुप्रयोग के आउटपुट फ़ंक्शंस से मेल खाने वाली परिभाषाएं हैं।

चूंकि प्रोलॉग को पार्स नहीं किया गया है, इसलिए फाइल को सही तरीके से समझना मुश्किल है।

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

मैं साथ इंकस्केप डी --file = filename.eps --export-सादे svg = filename.svg एक svg करने के लिए अपने ईपीएस निर्यात और बजाय ImageSVG का उपयोग कर के साथ और अधिक सफलता मिली। नोट: यह फ़ंक्शन पूरी तरह कार्यान्वित नहीं है, इसलिए मैं गारंटी नहीं दे सकता कि यह काम करेगा। मैंने केवल एक सुंदर बुनियादी ईपीएस का परीक्षण किया है।