0

我正在使用以下函数从 xhthml2pdf 生成我的 pdf 文件

def render_to_pdf(template_src, context_dict, filename):
    template = get_template(template_src)
    context = Context(context_dict)
    html  = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), encoding='UTF-8',  
            dest=result, 
            link_callback=fetch_resources )
    return pdf

接下来,我使用以下函数尝试压缩 pdf 对象列表

def generate_zip(object_list, template):
    result = StringIO.StringIO()
    zipped = zipfile.ZipFile(result, "w")
    for object in object_list:
        zipped.writestr("test.pdf", object)
    zipped.close()
    return result.getvalue()

但我收到以下错误

TypeError: object of type 'pisaContext' has no len()

这让我相信我没有生成正确的压缩对象。所以我的问题是,如何使用 xhtml2pdf 生成适合 zipfile 的 pd 文件?

4

1 回答 1

0

pdf必须是字符串(字节)。也许,您需要使用 render_to_pdf 的结果中的 result.getvalue() ?

我没有广泛使用比萨:PisaDocument 也有一个序列化方法:pdf.dest.getvalue()

于 2012-01-08T14:24:32.763 回答