[英]How to merge two pisaDocument file
我如何使用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")
基本上,我使用呈现在内存中两个pisaDocuments StringIO
并传递给PdfFileMerger
与append
方法,最后写了一个名为“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()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.