首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Python中使用Reportlab和Pisa从HTML文件生成PDF文件?

如何在Python中使用Reportlab和Pisa从HTML文件生成PDF文件?
EN

Stack Overflow用户
提问于 2015-11-24 08:27:45
回答 1查看 2.8K关注 0票数 0

将以下代码设置为在Python中使用Reportlab和Pisa生成PDF文档。

代码语言:javascript
复制
import cStringIO
import ho.pisa as pisa

def html_to_pdf(data, filename, open=False):
    pdf = pisa.CreatePDF(
        cStringIO.StringIO(data),
        file(filename, "wb"))

我的HTML文件包含标准HTML内容。

它的完全限定路径以及.html扩展被分配给output_file变量。

这样叫它:

代码语言:javascript
复制
with open(output_file, "r") as my_file:
        contents = my_file.read()

html_to_pdf(contents, dest_pdf_file, open=True)

获取此错误:

代码语言:javascript
复制
No handlers could be found for logger "sx.pisa3"
Traceback (most recent call last):
  File "/home/devuser/myapp/app.py", line 8, in <module>
    from utils.fileutils import FileUtil
  File "/home/devuser/myapp/utils/fileutils.py", line 5, in <module>
    import ho.pisa as pisa
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/ho/pisa/__init__.py", line 26, in <module>
    from sx.pisa3.pisa import *
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/sx/pisa3/__init__.py", line 41, in <module>
    from pisa import *
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/sx/pisa3/pisa.py", line 32, in <module>
    from pisa_document import *
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/sx/pisa3/pisa_document.py", line 22, in <module>
    from pisa_context import pisaContext
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/sx/pisa3/pisa_context.py", line 21, in <module>
    from pisa_util import *
  File "/usr/local/lib/python2.7/dist-packages/pisa-3.0.33-py2.7.egg/sx/pisa3/pisa_util.py", line 55, in <module>
    raise ImportError("Reportlab Version 2.1+ is needed!")
ImportError: Reportlab Version 2.1+ is needed!

这是pip freeze产生的结果的“部分列表”。

代码语言:javascript
复制
Pillow==2.3.0
PyPDF2==1.25.1
html5lib==0.999
oneconf==0.3.7.14.04.1
pdfkit==0.5.0
pisa==3.0.33
reportlab==3.0

看起来像是坏了的安装问题...

有谁知道如何修复这个或任何替代方法(方法和/或不同的库),用于生成HTML文件为PDF?

EN

回答 1

Stack Overflow用户

发布于 2015-11-25 08:33:56

让它工作起来..。卸载并重新安装pisa,它成功了!:)

代码语言:javascript
复制
sudo easy_install pisa

我的代码:

代码语言:javascript
复制
import cStringIO
import ho.pisa as pisa

class FileUtil:
    @staticmethod
    def html_to_pdf(html, output_file):
        pdfFile = file(output_file, "wb")
        pdf = pisa.CreatePDF(
            cStringIO.StringIO(html.encode("ISO-8859-1")), pdfFile)
        pdfFile.close()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33883366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档