我使用PyPDF4
合并pdf文件,然后将合并后的pdf用作HttpResponse
。
我使用BytesIO
从PdfFileMerger
得到结果。在
我用这个代码让它正常工作
def mergePDF(listOfPDFFile):
merger = PdfFileMerger()
for file in listOfPDFFile:
merger.append(PdfFileReader(file))
_byteIo = BytesIO()
merger.write(_byteIo)
return _byteIo.getvalue()
然后当我使用APIView
中的方法将合并后的pdf作为HttpResponse
返回
但是,为什么我必须创建BytesIO
对象两次才能使其工作?
最初,我返回_byteIO
实例,然后直接将该实例传递给FileWrapper
,但它输出0Kb文件。在
因此,我将_byteIO
实例转换为bytes
,然后在APIView中创建另一个BytesIO
实例以使其正常工作。在
如何简化代码?在
在
mergePDF
函数中,而不是返回做某事达到
^{pr2}$问题是当你写类似文件的对象时,光标被设置到最后一个字节。只需将其移回开头,否则就如同从空文件中读取一样。在
相关问题 更多 >
编程相关推荐