为什么要赢得这项工作:
with open('file.pdf', 'w') as outfile:
outfile.write("Hello")
代码工作正常,但无法打开.pdf文件。普通文本文件和pdf之间的区别是什么? 如果我想在python中创建和写入pdf文件该怎么办?
答案 0 :(得分:15)
您可以安装fpdf库,然后:
from fpdf import FPDF
pdf = FPDF()
pdf.add_page()
pdf.set_xy(0, 0)
pdf.set_font('arial', 'B', 13.0)
pdf.cell(ln=0, h=5.0, align='L', w=0, txt="Hello", border=0)
pdf.output('test.pdf', 'F')
答案 1 :(得分:6)
普通文本文件和pdf有什么区别?
PDF文件具有特定格式。您可以阅读更多here。文本是一个更简单的文件,因此当您尝试打开您认为它是PDF但没有此格式的文件时,无法打开该文件。
如果我想在python中创建和写入pdf文件怎么办?
您需要使用模块,例如PyPDF2,Reportlab或FPDF。另外阅读Python PDF library。
答案 2 :(得分:2)
每种类型的文件都有自己的内部格式 - 一组关于必须去哪里定义它所代表的信息的规则。通常文件扩展名(在这种情况下为“.pdf”)设置为告诉您文件使用的内部格式,但并不能绝对保证。
如果使用Python将字符串写入文件,则该文件将具有您放入其中的文件,在这种情况下,只有五个ASCII字符H,e,l,l和o。这将对应于文本文件的正常格式。因此,在这种情况下,您已创建了一个文本文件,但在其上放置了“.pdf”扩展名。它的内部格式仍然是一个文本文件,如果你将它重命名为'file.txt',你会发现你可以打开它(使用文本编辑器)。
如果要创建真正的PDF文件(具有正确的PDF内部格式的文件),则需要使用可以编写该类型文件的专用软件包。 @gsamaras和@ rasmus-lyngdal-christensen提出了一些很好的建议(Reportlab,PyPDF2和fpdf)。