当我在网上搜索 python pdf 合并解决方案时,我注意到合并与附加存在一个普遍的误解。
大多数人将附加操作称为合并,但事实并非如此。您在问题中描述的实际上是 mergePage 的预期用途 应该称为 applyPageOnTopOfAnother 但这有点长。您(正在)寻找的实际上是附加两个文件/pages 到一个新文件中。
附加 PDF 文件
使用PdfFileMerger 类及其append method。
与merge() 方法相同,但假设您要连接
所有页面都放在文件末尾,而不是指定位置。
这是一种取自pypdf Merging multiple pdf files into one pdf的方法:
from PyPDF2 import PdfFileMerger, PdfFileReader
# ...
merger = PdfFileMerger()
merger.append(PdfFileReader(file(filename1, 'rb')))
merger.append(PdfFileReader(file(filename2, 'rb')))
merger.write("document-output.pdf")
附加特定的 PDF 页面
要附加不同 PDF 文件的特定页面,请使用 PdfFileWriter 类和 addPage method。
向此 PDF 文件添加页面。该页面通常是从一个
PdfFileReader 实例。
file1 = PdfFileReader(file(filename1, "rb"))
file2 = PdfFileReader(file(filename2, "rb"))
output = PdfFileWriter()
output.addPage(file1.getPage(specificPageIndex))
output.addPage(file2.getPage(specificPageIndex))
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()
将两个页面合并为一个页面
使用mergePage
将两个页面的内容流合并为一个。资源参考
(即字体)由两个页面维护。媒体框/裁剪框/等
此页面的内容未更改。参数页面的内容流将
被添加到此页面内容流的末尾,这意味着它
将绘制在此页面之后或“顶部”。
file1 = PdfFileReader(file(filename1, "rb"))
file2 = PdfFileReader(file(filename2, "rb"))
output = PdfFileWriter()
page = file1.getPage(specificPageIndex)
page.mergePage(file2.getPage(specificPageIndex))
output.addPage(page)
outputStream = file("document-output.pdf", "wb")
output.write(outputStream)
outputStream.close()