2012-09-12 15 views
14

एम्बेड करें क्या इस विशाल स्थान में किसी ने कभी भी एचटीएमएल पर एक एम्बेडेड एसवीजी के साथ पीडीएफ बनाने के लिए भाग्य प्राप्त किया है? मुझे हर समय सेगमेंटेशन गलती मिल रही है।wkhtmltopdf विफलता जब एक एसवीजी

या शायद किसी HTML फ़ाइल में एसवीजी एम्बेड करने और wkhtmltopdf के बजाय इसे पीडीएफ में निर्यात करने का कोई अन्य तरीका है?

+0

यह एक समस्या की तरह लगता है जिसे मैंने हाल ही में एसवीजी का उपयोग करके wkhtmltopdf के साथ हल किया है। आपने किस संस्करण की कोशिश की है? ऐसा करने के लिए मुझे सांख्यिकीय रूप से जुड़े 0.9 संस्करण का उपयोग करके अधिक भाग्य मिला। – hsanders

+0

hsanders, मैं 0.11.0 आरसी 1 का उपयोग कर रहा हूं .. आपने फ़ाइल बीटीडब्ल्यू को कैसे एम्बेड किया? – Jeebsion

+0

हम जिस एसवीजी का उपयोग कर रहे थे वह हाईचार्ट्स (फ्लाई पर जेनरेट) द्वारा एम्बेडेड किया गया था – hsanders

उत्तर

0

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

उम्मीद है कि इससे मदद मिलती है अगर किसी के पास भी वही समस्या होगी जैसा मैंने किया था। धन्यवाद! : डी

12

मुझे भी इसी तरह की समस्या थी। ऐसा लगता है कि एसवीजी छवि में एम्बेडेड जावास्क्रिप्ट सेगमेंटेशन गलती हो सकती है।

मैं पायगल पायथन मॉड्यूल का उपयोग कर एसवीजी ग्राफ उत्पन्न कर रहा था। एसवीजी ग्राफ के साथ एचटीएमएल से सफलतापूर्वक पीडीएफ जेनरेट करने के लिए मुझे कई चीजें करना पड़ा:

  1. जावास्क्रिप्ट के संदर्भ को हटाएं। (pygal के मामले में एक ग्राफ कन्स्ट्रक्टर के लिए js =() कुंजी जोड़ें)।
  2. इनकोडिंग रूप बेस 64 में svg टैग में छवि का आकार निर्दिष्ट करें, जैसे

    <svg ... width="300" height="200"> 
    

  3. एम्बेड एसवीजी छवि (pygal उपयोग explicit_size keywoard के मामले में) img में टैग,

    की तरह
    <img src="data:image/svg+xml;base64,PHN2ZyB3aWR0aD0..."> 
    

मैं wkhtmltopdf के 11 वें संस्करण का उपयोग कर रहा था।

+2

एक्सएमएल फ़ाइल में किसी भी टैग से 'अस्पष्टता' संपत्ति को हटाने का प्रयास करें; जिसने इसे मेरे लिए हल किया। – okyanet

+0

एसवीजी टैग में एसवीजी फ़ाइल का विस्तार करने के लिए यह मेरे लिए किया।इसे 'img' टैग के भीतर डालने से दुर्भाग्य से कुछ भी नहीं हुआ। –

4

यह सुधार दूसरों के लिए काम नहीं करता है, यहाँ उबंटू 64 (Panokev को क्रेडिट)

अन्य सभी से पहले अपने जावास्क्रिप्ट को यह जोड़े के तहत chartist.js, और wkhtmltopdf 0.12.2.1 साथ मेरे लिए क्या काम किया है जे एस।

{ 

Function.prototype.bind = Function.prototype.bind || function (thisp) { 
    var fn = this; 
    return function() { 
     return fn.apply(thisp, arguments); 
    }; 
}; 

परिभाषित रूप से चार्ट div के लिए चौड़ाई शैली सेट करें, उदाहरण के लिए - शैली = "चौड़ाई: 950 पीएक्स;"

+1

यह chartist.js के लिए विशिष्ट है, और यह क्या करता है? क्या आप अधिक जानकारी जोड़ सकते हैं? – mehmet