मैं इस स्निपेट का उपयोग कर टेम्पलेट से कोई पीडीएफ उत्पन्न करने के लिए कोशिश कर रहा हूँ:क्या पीजीएफ उत्पन्न करने का कोई तरीका है जिसमें डीजेंगो टेम्पलेट से पीसा के साथ गैर-असीसी प्रतीक शामिल हैं?
def write_pdf(template_src, context_dict):
template = get_template(template_src)
context = Context(context_dict)
html = template.render(context)
result = StringIO.StringIO()
pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
if not pdf.err:
return http.HttpResponse(result.getvalue(), mimetype='application/pdf')
except Exception('PDF error')
सभी गैर-लैटिन प्रतीकों सही ढंग से नहीं दिखा रहे हैं, टेम्पलेट और दृश्य का उपयोग कर सहेजे जाते हैं UTF-8 एन्कोडिंग।
मैंने एएनएसआई के रूप में दृश्य को सहेजने की कोशिश की है और फिर उपयोगकर्ता यूनिकोड (एचटीएमएल, "यूटीएफ -8") पर, लेकिन यह TypeError फेंकता है।
इसके अलावा मैंने सोचा कि शायद ऐसा इसलिए है क्योंकि डिफ़ॉल्ट फोंट किसी भी तरह utf-8 का समर्थन नहीं करते हैं, इसलिए पीसा दस्तावेज़ीकरण के अनुसार मैंने शैली अनुभाग में टेम्पलेट बॉडी में फ़ॉन्टफ़ेस सेट करने का प्रयास किया।
अभी भी कोई परिणाम नहीं दिया गया है।
क्या किसी के पास इस मुद्दे को हल करने के लिए कुछ विचार हैं?
के बाद replaceing पीडीएफ अपठनीय डेटा से भरा, समाधान की जाँच की, विधि मैं क्या उपयोग से बहुत अलग नहीं है, लेकिन मैं अभी भी, यह परीक्षण किया html.encode साथ ("ISO-8859-1") यह मिल गया फेंकता है: "'लैटिन -1' कोडेक स्थिति 0 में \ ufeff 'अक्षर को एन्कोड नहीं कर सकता है: क्रमशः श्रेणी में नहीं (256)" एन्कोड ("यूटीएफ -8") के साथ यह पीडीएफ देता है लेकिन जैसा ही मैं पहले से मिला है - गैर-ascii प्रतीकों को अभी भी ठीक से प्रस्तुत नहीं किया जाता है। – mihailt
@ मिहाइलट आपको कोई समाधान मिला है? –
वास्तव में इसे जोड़ना: 'एन्कोडिंग = 'यूटीएफ -8' ने एन्कोडिंग पॉलिश वर्णों के साथ मेरी समस्या हल की – andi