[python] reportlab a čeština

RMiklos na pss.sk RMiklos na pss.sk
Úterý Únor 6 09:16:48 CET 2007


Toto 
# -*- coding: iso-8859-2 -*- 
u mna vo Windows nefunguje, ale funguje toto
# -*- coding: cp1250 -*-
Je to kodovanie v ktorom mas napisany Pythonovsky skript. 
Myslim, ze cp1250 je vo windows (u nas) standard, alebo ty to robis na 
Unixe?

Font si sice zaregistroval ale zabudol si ho nastavit cez 
canv.setFont("Arial", ...)

Tu je cely skript, ktory mne funguje:

--------------------------------- skript ---------------------------
# -*- coding: cp1250 -*-

import reportlab.rl_config
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas

reportlab.rl_config.TTFSearchpath = 'c://Windows//Fonts'
pdfmetrics.registerFont(TTFont('Arial','arial.ttf'))

def run():
 
    t1= 'Bez diakritiky : e-s-c-r-z-y-a-i-e-d-t-n-E-S-C-R-Z-Y-A-I-E-D-T-N'
    t2= u'S diakritikou  : 
ě-š-č-ř-ž-ý-á-í-é-ď-ť-ň-Ě-Š-Č-Ř-Ž-Ý-Á-Í-É-Ď-Ť-Ň'
    canv = canvas.Canvas('Test.pdf')
    canv.setFont("Arial", 10) 
    canv.drawString(120,600,t1)
    canv.drawString(120,580,t2.encode('utf-8'))
    canv.save()

if __name__ == '__main__':

     run()
---------------------------------- konec ------------------------- 

a tu je vysledok






*************************************************************************************************************
Výsledek je v příloze. Asi to fakt neumím.

Můžu ještě poprosit o pomoc?

Děkuji Ludík

Napsal jsem podle návodu, snad přesně:

# -*- coding: iso-8859-2 -*-

import reportlab.rl_config
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas

reportlab.rl_config.TTFSearchpath = 'c:/Windows/Fonts'
pdfmetrics.registerFont(TTFont('Arial','arial.ttf'))

def run():
 
    t1= 'Bez diakritiky : e-s-c-r-z-y-a-i-e-d-t-n-E-S-C-R-Z-Y-A-I-E-D-T-N'
    t2= 'S diakritikou  : '+ 
u'ě-š-č-ř-ž-ý-á-í-é-ď-ť-ň-Ě-Š-Č-Ř-Ž-Ý-Á-Í-É-Ď-Ť-Ň'
    canv = canvas.Canvas('Test.pdf',)
    canv.drawString(120,600,t1)
    canv.drawString(120,580,t2.encode('utf-8'))
    canv.save()

if __name__ == '__main__':

     run()




Mgr. Ing. Roman MIKLÓŠ 
Prvá stavebná sporiteľňa a.s. 
Bajkalská 30, P. O. Box 48 
829 48  Bratislava 25 
Tel.: +421/ 2 / 582 31 174 
Fax: +421/ 2 / 582 31 109 
------------- další část ---------------
HTML příloha byla odstraněna...
URL: http://www.py.cz/pipermail/python/attachments/20070206/75f70010/attachment.htm 
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Test.pdf
Typ: application/octet-stream
Velikost: 2414 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20070206/75f70010/attachment.obj 
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: Test.pdf
Typ: application/octet-stream
Velikost: 21320 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20070206/75f70010/attachment-0001.obj 
------------- další část ---------------
Netextová příloha byla odstraněna...
Jméno: test.py
Typ: application/octet-stream
Velikost: 680 bytes
Popis: [žádný popis není k dispozici]
Url : http://www.py.cz/pipermail/python/attachments/20070206/75f70010/attachment-0002.obj 


Další informace o konferenci Python