pycharm 如何使用python合并pdf文件而不将其存储到本地目录

c9qzyr3d  于 2023-02-08  发布在  PyCharm
关注(0)|答案(2)|浏览(157)

我有一些PDF文件上传到远程服务器。我有每个文件的网址,我们可以通过访问这些网址下载这些PDF文件。
我的问题是,
我想把所有的pdf文件合并成一个文件(但是,不把这些文件存储到本地目录)。我该怎么做(在python模块'PyPDF2'中)?

uqjltbpv

uqjltbpv1#

请转到pypdf,它本质上与PyPDF2相同,但开发将在那里继续(我是这两个项目的维护者)。
您的问题已在文档中得到解答:

不是写入文件,而是写入io.ByteIO流:

from io import ByteIO

# e.g. writer = PdfWriter()
# ... do what you want to do with the PDFs

with BytesIO() as bytes_stream:
    writer.write(bytes_stream)
    bytes_stream.seek(0)
    data = bytes_stream.read()  # that is now the "bytes" represention
z9zf31ra

z9zf31ra2#

要合并PDF文件而不将其保存在本地,可以使用requests库下载每个文件的内容,然后将内容传递给PyPDF2库中的PdfFileReader类。

import requests
import PyPDF2
from io import BytesIO

def merge_pdfs_remotely(urls, output_filename):
    # Create a list of file-like objects from the URLs
    file_streams = [BytesIO(requests.get(url).content) for url in urls]
    
    # Create the PDF merger object
    merger = PyPDF2.PdfFileMerger()
    
    # Add each PDF file to the merger
    for stream in file_streams:
        merger.append(PyPDF2.PdfFileReader(stream))

相关问题