使用Python创建和写入pdf文件

时间:2017-08-30 06:48:26

标签: python file pdf

为什么要赢得这项工作:

with open('file.pdf', 'w') as outfile:
    outfile.write("Hello")

代码工作正常,但无法打开.pdf文件。普通文本文件和pdf之间的区别是什么? 如果我想在python中创建和写入pdf文件该怎么办?

3 个答案:

答案 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文件怎么办?

您需要使用模块,例如PyPDF2ReportlabFPDF。另外阅读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)。