如何在同一页面中合并5个PDF

时间:2019-08-13 11:57:13

标签: python pdf generate

我正在生成大量PDF,对于每5个PDF,我想在一页上进行合并。

pdfs = ['out_mitry.pdf','out_cdg.pdf']

merger = PdfFileMerger()

对于pdf中的pdf:     merge.append(pdf)

merger.write(“ result.pdf”) merge.close()

我的实际结果是得到合并,但是每个pdf都在一页上。 我想在一页中合并5个pdf

1 个答案:

答案 0 :(得分:1)

我最近遇到了这样的问题并找到了解决方案。 我演示了两个单页文件的解决方案,您可以轻松地将其扩展到任意数量的 pdf。

让我们以这种方式组合页面:

---------
|   |   |
| 1 | 2 |
|   |   |
---------
from PyPDF3 import PdfFileWriter, PdfFileReader
from PyPDF3.pdf import PageObject

pdf_filenames = ["out_mitry.pdf", "out_cdg.pdf"]

input1 = PdfFileReader(open(pdf_filenames[0], "rb"), strict=False)
input2 = PdfFileReader(open(pdf_filenames[1], "rb"), strict=False)

page1 = input1.getPage(0)
page2 = input2.getPage(0)

total_width = page1.mediaBox.upperRight[0] + page2.mediaBox.upperRight[0]
total_height = max([page1.mediaBox.upperRight[1], page2.mediaBox.upperRight[1]])

new_page = PageObject.createBlankPage(None, total_width, total_height)

# Add first page at the 0,0 position
new_page.mergePage(page1)
# Add second page with moving along the axis x
new_page.mergeTranslatedPage(page2, page1.mediaBox.upperRight[0], 0)

output = PdfFileWriter()
output.addPage(new_page)
output.write(open("result.pdf", "wb"))