2013-06-09 6 views
5

क्या लैटिन 2 अक्षरों को उचित तरीके से परिवर्तित करने का कोई विकल्प है? मुझे अपने स्कूल प्रोजेक्ट में पॉलिश लेटर चाहिए। यहाँ कुछ कोड कैसे मैं पीडीएफDjango reportlab latin2 एन्कोडिंग

#!/usr/bin/python 
# -*- utf-8 -*- 

from reportlab.pdfgen import canvas 
from reportlab.lib.pagesizes import letter, A4 



def GenerujPustyArkusz(c): 
    c.setFont("Times-Roman", 8) 
    c.drawString(450,750, u"Załącznik nr 2 do Regulaminu") 


def test(): 
    c = canvas.Canvas("test.pdf", pagesize=letter) 
    GenerujPustyArkusz(c) 
    c.showPage() 
    c.save() 


test() 

उत्पन्न है और मैं इस मिल:

Za■■cznik nr 2 do Regulaminu 

मैं कोई परिणाम के साथ कई एन्कोडिंग चाल की कोशिश की।

+0

आपको यह गलत आउटपुट कहां मिल रहा है? जेनरेट पीडीएफ में? –

+0

हां, मुझे जो मिलता है वह पीडीएफ से कॉपी किया जाता है (मैंने काले वर्गों के साथ कॉपी किया 'एनएन' बदल दिया - यह मैं पीडीएफ में देखता हूं)। – lisek

+0

इसके बजाय 'GenerujPustyAskusz' विधि में इस पंक्ति को आज़माएं: 'c.drawString (450,750," Załącznik nr 2 do Regulaminu ".decode (' utf-8 '))' ', आप इस प्रश्न को लैटिन 2 के रूप में क्यों टैग कर रहे हैं, मुझे लगता है कि आप utf-8 का उपयोग कर रहे हैं? –

उत्तर

6

मुझे लगता है कि मुख्य समस्या यह है कि आपके द्वारा उपयोग किए जा रहे फ़ॉन्ट में उन पॉलिश वर्ण नहीं हैं। इस कोड मेरे लिए काम किया है और वे वर्ण जो आप चाहते थे दिखाया: यदि आप अन्य फ़ॉन्ट का उपयोग करने के लिए आप टाइपफेस आप चाहते हैं कि पॉलिश अक्षर शामिल ढूंढना होगा चाहते हैं

#!/usr/bin/python 
# -*- coding: utf-8 -*- 

from reportlab.pdfgen import canvas 
from reportlab.lib.pagesizes import letter, A4 
from reportlab.pdfbase import pdfmetrics 
from reportlab.pdfbase.ttfonts import TTFont 

def GenerujPustyArkusz(c): 
    pdfmetrics.registerFont(TTFont('Verdana', 'Verdana.ttf')) 
    c.setFont("Verdana", 8) 
    s = u"Załącznik nr 2 do Regulaminu" 
    c.drawString(450,750, s) 

def test(): 
    c = canvas.Canvas("test.pdf", pagesize=letter) 
    GenerujPustyArkusz(c) 
    c.showPage() 
    c.save() 

test() 

मुझे आशा है कि इससे मदद मिलती है!

+1

Awosome! यह काम करता हैं। बहुत बहुत धन्यवाद, आपने मुझे बहुत समय बचाया। सोल्व – lisek

+0

मुझे खुशी है, जवाब स्वीकार करने पर विचार करें, कृपया यह आपके लिए उपयोगी था :) –

+0

अब अगर केवल एक तरीका 'Canvas.getAvailableTTFonts() 'था ... –

संबंधित मुद्दे