将多页pdf连接到单页pdf

时间:2019-12-15 22:21:46

标签: python python-3.x pdf pdf-conversion

所以我有一个多页pdf,看起来像这样

multipage

该页面当前有多个页面,但我想进行合并。这两页的连接方式应使其成为一页。 (从字面上看,将两个页面合并在一起,但摆脱了它们之间的灰色区域。

gray area that needs to go away  我已经挖深int pypdf2和pdf2image,但到目前为止还没有任何运气。我想知道是否有任何功能可以帮助我实现这一目标?

1 个答案:

答案 0 :(得分:1)

您可以创建一个新页面对象,该对象的长度是第一页面对象的两倍(假设两个页面的高度相等),然后在新页面中一个接一个地放置页面。

from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject


reader = PdfFileReader(open("file.pdf",'rb'))

page_1 = reader.getPage(0)
page_2 = reader.getPage(1)

#Creating a new file double the size of the original
translated_page = PageObject.createBlankPage(None, page_1.mediaBox.getWidth(), page_1.mediaBox.getHeight()*2)

#Adding the pages to the new empty page
translated_page.mergeScaledTranslatedPage(page_1, 1, 0, page_1.mediaBox.getHeight())
translated_page.mergePage(page_2)

writer = PdfFileWriter()
writer.addPage(translated_page)

with open('out.pdf', 'wb') as f:
    writer.write(f)

如果它们的高度不同,那就做

translated_page = PageObject.createBlankPage(None, page_1.mediaBox.getWidth(), page_1.mediaBox.getHeight()+ page_2.mediaBox.getHeight())