【发布时间】:2020-08-29 15:40:52
【问题描述】:
我一直在尝试使用下面的代码将 .txt 转换为 .pdf
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=15)
f = open("data.txt", "r")
for x in f:
pdf.cell(200, 10, txt=x, ln=1, align='L')
pdf.output("Data.pdf")
data.txt 如下:
啊啊啊:4
BB: 5
cccccc: 9[data.txt_file][1]
但是当转换这个data.txt 和结果Data.pdf 将看起来像:
aaaaa:4 BB: 5 cccccc: 9[Data.pdf_file][2]
所需的转换文件应与data.txt相同。
我也曾经使用这段代码获取data.txt
letter = ['aaaaa', 'bb', 'cccccc']
number = [4, 5, 9]
for line in zip(letter, number):
print('{:6}: {}'.format(*line))
我在打印语句中使用了制表符。
运行代码后,data.txt 将被创建。
[1]:https://i.stack.imgur.com/5Roql.jpg
[2]:https://i.stack.imgur.com/SfJCU.jpg
【问题讨论】:
-
data.txt 是否有用于填充的空格或制表符?不管怎样,尽管 Arial 不是等宽字体:也许试试 Courier New?
-
实际上我已经从我的一个项目中保存了 data.txt,我曾经使用这段代码生成这些列,用于 zip(names, number) 中的行: print('{:38 }{}'.format(*line))
-
我在这段代码中没有看到任何生成列的 Python FPDF 代码?特别是我看不到任何将输入 data.txt 拆分为列以给 FPDF 多列进行格式化的代码?在我看来,您正在使用 data.txt 中行中间的空格数来排列列。
-
data.txt 文件本身是使用 zip 函数创建的。
-
我仍然不清楚第一个块中的哪个代码告诉 FPDF 通过输入中的制表符将您的文本分成列。
标签: python pdf type-conversion