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

Python reportlab中生成的pdf报告与原始文本数据不相似,python,pdf,reportlab,Python,Pdf,Reportlab,我试图从文本文件生成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 n

我试图从文本文件生成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
登录名
密码
姓氏
名称
年龄:

而不是
ID用户ID登录名密码姓氏姓名年龄

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

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() 
编辑: 如果您的输入文本文件有这么多分隔符,那么您应该这样做

import re

file = open("yourdata", "r")  # text file I need to convert
lines = file.read()
lines2 = re.split('; |\n', lines)
file.close()
通过重新打包,您可以在文本文件中包含所有分隔符,以便在reportlab生成的pdf文件中轻松显示确切内容