gpt4 book ai didi

python - 如何使用 PyPDF2 附加 PDF 页面

转载 作者:太空狗 更新时间:2023-10-29 20:39:38 29 4
gpt4 key购买 nike

有没有人有使用 python lib PyPDF2 将两页 PDF 文件合并为一个文件的经验。当我尝试 page1.mergePage(page2) 时,结果是 page2 覆盖了 page1。如何让它把page2添加到page1的底部?

最佳答案

当我在网上搜索 python pdf 合并解决方案时,我注意到人们对合并与附加存在普遍的误解。

大多数人将附加操作称为合并,但事实并非如此。你在问题中描述的实际上是 mergePage 的预期用途,它应该被称为 applyPageOnTopOfAnother 但这有点长。 你是什么(是)寻找实际上是将两个文件/页面附加到一个新文件中。

附加 PDF 文件

使用 PdfFileMerger 类及其 append method .

Identical to the merge() method, but assumes you want to concatenateall pages onto the end of the file instead of specifying a position.

这是一种取自 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 一起使用.

Adds a page to this PDF file. The page is usually acquired from aPdfFileReader instance.

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

Merges the content streams of two pages into one. Resource references(i.e. fonts) are maintained from both pages. The mediabox/cropbox/etcof this page are not altered. The parameter page’s content stream willbe added to the end of this page’s content stream, meaning that itwill be drawn after, or “on top” of this page.

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()

关于python - 如何使用 PyPDF2 附加 PDF 页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22795091/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com