文字間にスペースがほしく、関数を作って下記のようなコードを実行しました。
Python
1from reportlab.pdfgen import canvas 2from reportlab.lib.units import mm 3bytes = BytesIO() 4c = canvas.Canvas(bytes, pagesize=landscape(A4)) 5 6def map_each(text,x,y,w): 7 for moji in text: 8 c.drawString((x+w*text.index(moji))*mm,y*mm,str(moji)) 9 10p2="299" 11p4="1950" 12cha="261" 13 14c.setFont(fontname,12) 15# c.drawString(58*mm,160*mm,p2) 16map_each(p2, 58, 160, 6) 17map_each(p4, 94, 160, 6) 18map_each(cha, 124, 160, 6) 19if classification=="抹": #classificationはこれより前のコードからきたもの 20 syubetsu="11" 21elif classification=="車": 22 syubetsu=" 3" 23map_each(syubetsu,43,190,7) 24
printや、単純にdrawStringをするとちゃんちと "11"は"11"、"299"は"299"としてアウトプットされますので、textの中身の問題ではない。
ただ、関数も4回使っているうちの他の2回は成功しているので、原因が分かりません。
reportlabは隣に近すぎると/ポジションによって文字が描けない、なんてことはあり得ますでしょうか??
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。