Python - PyPdf2 合并不保持 PDF 大小

Posted

技术标签:

【中文标题】Python - PyPdf2 合并不保持 PDF 大小【英文标题】:Python - PyPdf2 merge does not keep PDF size 【发布时间】:2019-12-16 15:33:12 【问题描述】:

我在使用 PyPDF2 合并 PDF 时遇到了大小问题。我有以下代码来合并 pdfs 文件:

merger = PyPDF2.PdfFileMerger()
    for pdf in fileSorted:
        merger.append(pdf[1])
        os.remove(pdf[1])
    merger.write(tmpPath + '/result.pdf')

问题是,PDF 尺寸比原始尺寸太大。如何指定 pdf 大小?

输入文件大小为 210*297mm (A4),输出大小为 900x1273mm

非常感谢

【问题讨论】:

输出是什么样的?除了尺寸问题,它是否正确附加? 是的,我的内容没有问题,但大小对我来说是个问题,因为在浏览器中显示效果很差(firefox pdf 查看器缩放它而不是完全显示 pdf) 这真的很奇怪哈哈。你要合并的所有文件都是一样的大小,210*297,对吧? 我只是发布我的解决方案 :) 【参考方案1】:

我终于找到了解决办法。我的问题就在这里,因为在合并之前,我将 pdf 转换为 jpg,然后将 jpg 转换为 pdf,然后合并它。所以我将合并更改为:

writer = PyPDF2.PdfFileWriter()
for pdf in fileSorted:
   reader = PyPDF2.PdfFileReader(pdf[1])
   page   = PageObject.createBlankPage(reader)
   page.mergePage(reader.getPage(0))
   page.scaleTo(width=595,height=842)
   writer.addPage(page)


outputStream = open(tmpPath + '/result.pdf', 'wb')
writer.write(outputStream)
outputStream.close()

【讨论】:

以上是关于Python - PyPdf2 合并不保持 PDF 大小的主要内容,如果未能解决你的问题,请参考以下文章

Python应用PDF处理-pypdf2

使用 pypdf2 和电子邮件合并多个 PDf

php如何利用python实现对pdf文件的操作(读写合并分割)

一个用于合并pdf的简单Python脚本

在python下进行pdf的合并

使用 PyPDF2 合并多个 pdf 文档中的页面