首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将两页合并成一页pdf

将两页合并成一页pdf
EN

Stack Overflow用户
提问于 2022-03-21 17:49:50
回答 1查看 125关注 0票数 1

有一个pdf文件的两个页面,我需要合并这两个页面,只有一个页面在一个新的pdf输出。简单地说,新的输出pdf应该是一个页面,我有下面的代码可以让我完成这个任务,但问题是输出是并排的两个页面。我需要页面垂直于同一页内的每一页。

代码语言:javascript
复制
from PyPDF2 import PdfFileWriter, PdfFileReader
from PyPDF2.pdf import PageObject

pdf_filenames = ['Sample.pdf']
inputpdf = PdfFileReader(open(pdf_filenames[0], 'rb'), strict=False)

page1 = inputpdf.getPage(0)
page2 = inputpdf.getPage(1)

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)
new_page.mergePage(page1)
new_page.mergeTranslatedPage(page2, page1.mediaBox.lowerRight[0], 0)

output = PdfFileWriter()
output.addPage(new_page)
output.write(open('MergedPDF.pdf', 'wb'))
EN

回答 1

Stack Overflow用户

发布于 2022-03-21 18:11:00

我可以使用下面的代码来解决这个问题,但是我欢迎任何我需要的想法,在合并之前可以控制页面的大小吗?

代码语言:javascript
复制
from PyPDF2 import PdfFileReader, PdfFileWriter
from PyPDF2.pdf import PageObject

reader = PdfFileReader(open('Sample.pdf','rb'))
page_1 = reader.getPage(0)
page_2 = reader.getPage(1)

translated_page = PageObject.createBlankPage(None, page_1.mediaBox.getWidth(), page_1.mediaBox.getHeight()*2)
translated_page.mergeScaledTranslatedPage(page_1, 1, 0, page_1.mediaBox.getHeight())
translated_page.mergePage(page_2)

writer = PdfFileWriter()
writer.addPage(translated_page)

with open('MergedPDF.pdf', 'wb') as f:
    writer.write(f)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71561952

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档