如何在python中将两个pdf页面拼接成一个页面

时间:2019-04-13 00:07:41

标签: python pdf pypdf

我正在使用python,我想将两个PDF页面合并为一个页面。我的目的是将这两页合并为一个PDF文件,而不是两个PDF。有什么办法可以将两个PDF逐一合并?我不想合并这两个。没有重叠,有什么方法可以将它们组合起来吗?

2 个答案:

答案 0 :(得分:1)

使用模块 PyPDF2 https://pypi.org/project/PyPDF2/)。

示例:

from PyPDF2 import PdfFileMerger
pdf_list = ['/path/to/first.pdf', '/path/to/second.pdf']
merger = PdfFileMerger()

for i in pdf_list:
    merger.append(open(i, 'rb'))

with open('/path/to/save/new.pdf', 'wb') as fout:
    merger.write(fout)

答案 1 :(得分:0)

如果我理解正确的话,您想这样拼接两页:

---------
|   |   |
| 1 | 2 |
|   |   |
---------

pyPDF3 模块允许您执行此操作。

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