Python不压缩合并PDF

3
我想使用Python将多个PDF合并成一个,但我目前使用的方法似乎会压缩输出:
from pathlib import Path
import PyPDF2

merged_object = PyPDF2.PdfFileMerger()

for file_item in list_of_pdfs:
    if Path(file_item).suffix != '.pdf':
        file_item = f'{file_item}.pdf'
    merged_object.append(PyPDF2.PdfFileReader(str(file_item)))

merged_object.write(str(directory))

我找不到一种无损合并PDF的方法,有解决方案吗?

1
奇怪...我用下面的文件尝试了你的代码:https://docs.scipy.org/doc/scipy-0.10.1/scipy-ref.pdf https://riptutorial.com/Download/matplotlib.pdf https://buildmedia.readthedocs.org/media/pdf/pillow/stable/pillow.pdf结果是一个 13462055 字节的输出文件,甚至比每个 pdf 文件的总和略大,而这些文件的大小总和为 12577087 字节。我没有发现任何异常,我相信轻微的增加是正常的。注意:我使用的是 PyPDF2 的版本号是 1.26.0。 - S_Bersier
@S_Bersier 我刚刚意识到压缩发生在更早的一个步骤,你是对的。 - Nathan
1个回答

2

我之前使用过PyMuPDF,但从未注意到压缩。 insert_pdf 方法适用于合并pdf文件。您可以尝试以下操作:

import fitz
from pathlib import Path

merged_object = fitz.open(list_of_pdfs.pop(0))

for file_item in list_of_pdfs:
  if Path(file_item).suffix != '.pdf':
      file_item = f'{file_item}.pdf'
  to_append = fitz.open(str(file_item))
  merged_object.insert_pdf(to_append)

merged_object.save(str(directory))
merged_object.close();

明天我会试一试,谢谢。 - Nathan
1
原始方法也是有效的,错误出在我这里,而不是 PyPDF2。 - Nathan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接