Skip to main content
 首页 » 编程设计

python之从 PdfFileWriter 创建 blobstore 文件

2025年05月04日10java哥

我正在尝试使用 python 和谷歌应用引擎将两个 pdf 与 pyPdf 库合并。 我从 blobstore 中读取文件,并使用我需要的信息创建 PdfFileWriter 对象,但随后我无法将此 PdfFileWriter 转换为 blobstore 文件。有解决办法吗? 谢谢:)

这是我的代码:

blob_reader1 = blobstore.BlobReader(blob_key1) 
blob_reader2 = blobstore.BlobReader(blob_key2) 
 
writer = PdfFileWriter() 
 
input1 = PdfFileReader(blob_reader1) 
input2 = PdfFileReader(blob_reader2) 
 
writer.addPage(input1.getPage(0)) 
writer.addPage(input1.getPage(1)) 
writer.addPage(input2.getPage(0)) 
 
 
# finally, write "output" to document-output.pdf 
# This lines are comment because it is the way to do it without google app engine--- 
# outputStream = file("document-output.pdf", "wb") 
# output.write(outputStream) 
# outputStream.close() 
#         
# Open the file and write to it 
#I do not how write the information are inside writer in blobstore file 
file_name = files.blobstore.create(mime_type='application/pdf')     
#with files.open(file_name, 'a') as f: 
#    f.write(writer) it does not work 
 
# Finalize the file. Do this before attempting to read it. 
files.finalize(file_name) 
 
blob_key = files.blobstore.get_blob_key(file_name) 

请您参考如下方法:

您可以尝试将数据输出到字符串缓冲区,然后将缓冲区写入 blob 文件:

import StringIO 
 
stream = StringIO.StringIO() 
writer.write( stream )    # write PDF content 
 
# Open the file and write to it 
with files.open(file_name, 'a') as f: 
    f.write( stream.getvalue() ) 

然后完成并执行通常的操作。