我想用reportlab
来写一段,但是我不能让它工作。在
此代码工作正常:
p.setFont('Helvetica',8)
labo = str('CANCIÓN').decode('utf-8')
p.setFillColor(HexColor('#ff8100'))
p.drawString(350,736, labo)
但这段代码没有:
^{2}$它返回:
Exception Value: invalid type for argument text
我做错什么了?在
我想我已经进口了所有必要的模块。在
#!/usr/bin/python
# -*- encoding: utf-8 -*-
from reportlab.pdfgen import canvas
from django.http import HttpResponse
from reportlab.lib.pagesizes import letter
from reportlab.lib.colors import HexColor
from reportlab.lib.utils import ImageReader
from reportlab.lib.styles import getSampleStyleSheet
from reportlab.platypus import Paragraph
import os
from io import BytesIO
import PIL.Image
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
你得到这个错误的原因是你混淆了语法。}是一个基本的画布操作。在
Paragraph
用于Platypus
,而{drawCentredString
的语法是canvas.drawCentredString(x, y, text)
,它要求您将文本作为string
提供给它,而不是Paragraph
对象。在Paragraph
的语法不同,它应该如下所示:因此,在创建段落之后,我们使用
wrapOn
告诉它它可以使用多少空间。然后我们使用drawOn
将其绘制到画布上。在但是按照上面提到的方法来做,只使用了
Platypus
(因此Paragraph
)的一小部分力量。它可以用来处理文档的完整流程,而不是仅使用一个Paragraph
,因此您可能需要查看Reportlab Userguide的第5章,它以清晰的方式解释了它的用法和好处。在相关问题 更多 >
编程相关推荐