用Pisa/xhtml2pd在Python中创建pdf

2024-05-16 13:29:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我知道在Python中有很多基于pdf创建的问题,但是我没有看到任何基于Pisa或xhtml2pdf创建pdf的问题。

这是我的密码。

pisa.pisaDocument(cStringIO.StringIO(a).encode('utf-8'),file('mypdf.pdf','wb'))

然后

pisa.startViewer('mypdf.pdf')

我在几个不同的教程和例子中组装了这个,但是我尝试过的每一件事情都会导致pdf被破坏,我在尝试打开pdf时会收到这个消息。

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

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

我做错什么了?我Mac电脑上的编码和这个有关吗?


Tags: 消息密码pdfutfencodefilexhtml2pdfwb
2条回答

我建议您执行以下操作:

pdf = pisa.pisaDocument(cStringIO.StringIO(a).encode('utf-8'),file('mypdf.pdf','wb'))
if pdf.err:
     print "*** %d ERRORS OCCURED" % pdf.err 

然后看看错误输出是什么。

我不确定您正在编码什么字符串,但这也可能有助于:

pdf = pisa.pisaDocument(cStringIO.StringIO(html.encode(a)).encode('utf-8'),file('mypdf.pdf','wb'))

这取决于a是否需要html编码

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

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

相关问题 更多 >