问题描述
我无法将西里尔文字包装到表格单元格中。我使用pdfmetrics.registerFont设置显示西里尔符号的字体,但是当文本长于单元格的宽度时,它不会被包装。我尝试使用getSampleStyleSheet,然后将文本包装到单元格中,但是我得到黑匣子而不是西里尔符号。这是我的代码示例:
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.lib.units import cm
from reportlab.platypus import Table,TableStyle
from reportlab.lib import colors
def coord(x,y,unit=1):
x,y = x * unit,height - h - y * unit
return x,y
width,height = A4
pdfmetrics.registerFont(TTFont('bold','Lora-Bold.ttf'))
pdfmetrics.registerFont(TTFont('regular','Lora-Regular.ttf'))
file_name = 'Report2.pdf'
title = 'ПРОТОКОЛ'
new_incidents = [('къс текст','къс текст','дълъг текст','дълъг текст'),('къс текст','дъъъъъллъъгггггг текстттттттттт','дъъъъъллъъгггггг текстттттттттт')]
pdf = canvas.Canvas(file_name)
table1 = Table(new_incidents,colWidths=[1.6 * cm,2.8 * cm,2.5 * cm,2.5 * cm])
table1.setStyle(TableStyle([('ALIGN',(0,1),(-1,-1),'LEFT'),('ALIGN',0),'CENTER'),('INNERGRID',0.25,colors.black),('@R_502_6277@',('FONT','bold',9),'regular',8)
]))
elems = []
elems.append(table1)
w,h = table1.wrap(width,height)
table1.wrapOn(pdf,550,840)
x,y = coord(1.5,6,cm)
table1.drawOn(pdf,x,y)
pdf.save()
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)