reportlab中生成的pdf报告与原始文本d不相似

2024-06-16 10:19:27 发布

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

我试图从文本文件生成pdf文档,但输出与文本文件上的记录不匹配。在

pdf输出数据从页面底部开始,而不是从顶部开始。在

请大家有什么想法吗

代码如下:

提前谢谢。在

from reportlab.pdfgen import canvas
from reportlab.lib.units import inch
from reportlab.lib.colors import magenta, red

file = open("Computingdata.txt", "r")  # text file I need to convert
    lines = file.read()
file.close()

report = canvas.Canvas('mypdf4.pdf')#new pdf report i am creating
report.setFont("Times-Roman", 20)
report.setFillColor(red)
report.drawCentredString(150, 2.5*inch, "Student details")

report.setFillColor(magenta)
size = 12
y = 2.0*inch
#x = 1.3*inch
for line in lines.split(';'):
    report.setFont("Helvetica", size)
    report.drawString(30,y, line)
    y = y-size*1.2
    #size = size+0.5
report.save() 

补充一下,输出的形式是 ID
用户名
登录名
密码
姓氏
名称
年龄:

而不是 ID USERID LOGIN-NAME密码姓氏NAME AGE。在


Tags: fromimportreportsizepdflibredfile
1条回答
网友
1楼 · 发布于 2024-06-16 10:19:27

谢谢大家,我已经能够用下面的调整代码解决我遇到的所有问题:

from reportlab.pdfgen import canvas
#from reportlab.lib.units import inch
from reportlab.lib.colors import magenta, red

file = open(""yourdata"", "r")  # text file I need to convert
lines = file.read()
file.close()
report = canvas.Canvas('mypdf5.pdf')#new pdf report i am creating
report.setFont("Times-Roman", 20)
report.setFillColor(red)
report.drawCentredString(100, 800, "Student details")

report.setFillColor(magenta)
size = 12
y = 790
#y = 2.0*inch
#x = 1.3*inch
for line in lines.split('\n'):
report.setFont("Helvetica", size)
    report.drawString(10, y, line)
    #y = y-size*1.2
    #size = size+0.5
    y = y - 10
report.save() 

编辑: 如果您的输入文本文件有很多分隔符,那么您应该执行如下操作

^{pr2}$

通过重新打包,您可以在文本文件中包含所有分隔符,以便在reportlab生成的pdf文件上显示准确的内容

相关问题 更多 >