2016-11-25 8 views
0

私のコードは、テキストをpdfテンプレートに挿入することになっています。変数のテキストは、私はその後 canvas_instance.drawString(10, 10, text.decode('utf-8') でテキストを組み込み、それを保存し、パラメータとしてファイルに空のPDFファイル、その後、キャンバスインスタンスをPythonのreportlabで非ASCII文字をpdfに挿入する

text = u"Gęślą JaźńZażółć" 

まず作成されます。 私のオリジナルのpdfファイルには実際に正しい位置にテキストが含まれていますが、ASCII文字以外の文字の代わりにASCII文字+きれいな黒い四角が得られます。 「Times-Bold」と「Helvetica」のフォントを設定しようとしましたが、うまくいかないようです。 は、私も、私のpythonファイルにおける符号化宣言を持っている:

# -*- coding: utf-8 -*- 

どのように私は、PDFテンプレートにテキストを挿入することができるだろうか?

のPython:2.7 LIBS:ReportLabの、pyPdf Ubuntuの14

+0

は、私がポーランドをサポートするいくつかのフォントにフォントを設定するためのsetFontを使用する必要がありますようです、テキスト=デコード( 'utf-8')が小さすぎる原因 – fanny

答えて

1

OK、ポーランド語をサポートTTFは、この問題を解決:

name = u"{} {}".format(unicode(mydata['firstname']), unicode(mydata['lastname'])) 
pdfmetrics.registerFont(TTFont('Theano', '<path>/TheanoOldStyle-Regular.ttf')) 

can.setFont('Theano', 16) 

can.drawString(175, 400, name.decode('utf-8')) 
関連する問題