将多页pdf连接成单页pdf
Concatenating multiple page pdf into single page pdf
所以我有一个看起来像这样的多页 pdf
multipage
这目前有不止一页,但我想拼接起来。这两页应以某种方式连接起来,使其成为一页。 (字面意思是加入两个页面,同时去掉它们之间的灰色区域。
gray area that needs to go away
我已经深入挖掘了 int pypdf2 和 pdf2image 但到目前为止还没有运气。我想知道有什么功能可以帮助我实现这一目标吗?
您可以创建一个长度是第一个页面对象两倍的新页面对象(假设两个页面的高度相同),然后将页面一个接一个地放入新页面中。
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())
所以我有一个看起来像这样的多页 pdf
multipage
这目前有不止一页,但我想拼接起来。这两页应以某种方式连接起来,使其成为一页。 (字面意思是加入两个页面,同时去掉它们之间的灰色区域。
gray area that needs to go away 我已经深入挖掘了 int pypdf2 和 pdf2image 但到目前为止还没有运气。我想知道有什么功能可以帮助我实现这一目标吗?
您可以创建一个长度是第一个页面对象两倍的新页面对象(假设两个页面的高度相同),然后将页面一个接一个地放入新页面中。
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())