gpt4 book ai didi

python - 如何合并两个 pisaDocument 文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:00:41 25 4
gpt4 key购买 nike

使用 xhtml2pdf 如何附加两个“pisaContext”对象 python。

我的要求是将两个页面分别渲染成2个不同的pdf,然后合并返回合并后的pdf。

最佳答案

我知道这是一个老问题,但我今天遇到这个问题,这是我使用 PyPDF2 的解决方案:

from StringIO import StringIO
from xhtml2pdf import pisa
from PyPDF2 import PdfFileMerger

# html1 and html2 are strings with the html content.
# link_callback is a function that return the path of files requested in the PDF file


pdf1_file = StringIO()
pdf1 = pisa.pisaDocument(
StringIO(html1.encode('UTF-8')),
pdf1_file,
link_callback=link_callback,
encoding='UTF-8'
)

pdf2_file = StringIO()
pdf2 = pisa.pisaDocument(
StringIO(html2.encode('UTF-8')),
pdf2_file,
link_callback=link_callback,
encoding='UTF-8'
)

if not pdf1.err and not pdf2.err:
merger = PdfFileMerger()
merger.append(pdf1_file)
merger.append(pdf2_file)
merger.write("files_merged.pdf")

基本上,我使用 StringIO 在内存中渲染两个 pisaDocument,并使用 append 方法将它们传递给 PdfFileMerger,最后写入文件名为“files_merged.pdf”。您还可以将 StringIO 实例传递给 write 方法并在内存中执行所有操作:

if not pdf1.err and not pdf2.err:
merger = PdfFileMerger()
merger.append(pdf1_file)
merger.append(pdf2_file)
output = StringIO()
merger.write(output)
file_content = output.getvalue()

关于python - 如何合并两个 pisaDocument 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55721459/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com