异常值:参数tex的类型无效

2024-04-29 15:40:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想用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

Tags: 代码fromimportlibutfdecodereportlabstr
1条回答
网友
1楼 · 发布于 2024-04-29 15:40:47

你得到这个错误的原因是你混淆了语法。Paragraph用于Platypus,而{}是一个基本的画布操作。在

drawCentredString的语法是canvas.drawCentredString(x, y, text),它要求您将文本作为string提供给它,而不是Paragraph对象。在

Paragraph的语法不同,它应该如下所示:

p = Paragraph("Generating Reports with Python", styles["Heading1"])        
p.wrapOn(canvas, 200, 400)
p.drawOn(canvas, 400, 600)

因此,在创建段落之后,我们使用wrapOn告诉它它可以使用多少空间。然后我们使用drawOn将其绘制到画布上。在

但是按照上面提到的方法来做,只使用了Platypus(因此Paragraph)的一小部分力量。它可以用来处理文档的完整流程,而不是仅使用一个Paragraph,因此您可能需要查看Reportlab Userguide的第5章,它以清晰的方式解释了它的用法和好处。在

相关问题 更多 >