使用Pisa/xhtml2pdf在Python中创建pdf

dal*_*ler 2 python pdf pisa xhtml2pdf

我知道基于Python中的pdf创建有很多问题,但我没有看到任何基于使用Pisa或xhtml2pdf创建pdf的内容.

这是我的代码.

pisa.pisaDocument(cStringIO.StringIO(a).encode('utf-8'),file('mypdf.pdf','wb'))
Run Code Online (Sandbox Code Playgroud)

然后

pisa.startViewer('mypdf.pdf')
Run Code Online (Sandbox Code Playgroud)

我在几个不同的教程和示例中汇编了这个,但是我尝试的每一件事总是导致pdf被破坏,并且在尝试打开pdf时我得到了这个消息.

"Adobe Reader无法打开'awesomer.pdf',因为它不是受支持的文件类型,或者因为文件已损坏(例如,它是作为电子邮件附件发送的,并且未正确解码)."

即使我不在字符串上使用.encode('utf-8'),也会出现此消息.

我究竟做错了什么?我的Mac上的编码是否与此有关?

小智 5

我建议手动关闭文件,有一个类似的问题.试试这个:

f = file('mypdf.pdf', 'wb')
pisa.pisaDocument(cStringIO.StringIO(a).encode('utf-8'),f)
f.close()
Run Code Online (Sandbox Code Playgroud)