You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyPDF将两页PDF合并为单页并排时显示不全求助

解决PyPDF合并PDF两页并排显示不全的问题

问题出在直接给原PDF页面添加变换后合并时,原页面的裁剪框/媒体框会限制内容显示范围,平移后超出原页面边界的部分会被截断,导致第二页只显示一半。

改用merge_transformed_page方法就能解决这个问题,该方法会基于变换参数正确渲染内容,不受原页面框的限制。修正后的代码如下:

from pypdf import PdfWriter, PdfReader, PageObject, Transformation

reader = PdfReader(open("file.pdf", "rb"))
page1 = reader.pages[0]
page2 = reader.pages[1]

# 创建横向空白页,适配缩放后两页并排的尺寸
single_page = PageObject.create_blank_page(width=842, height=595)

# 定义左右页面的变换逻辑:先缩放0.7,再平移到对应位置
left_transform = Transformation().scale(0.7).translate(0, 0)
right_transform = Transformation().scale(0.7).translate(421, 0)

# 使用merge_transformed_page合并页面,传入变换参数
single_page.merge_transformed_page(page1, left_transform, expand=False)
single_page.merge_transformed_page(page2, right_transform, expand=False)

output = PdfWriter()
output.add_page(single_page)
# 用with语句管理文件,更安全简洁
with open("file_output.pdf", "wb") as output_file:
    output.write(output_file)

额外提示:

  • 若不确定原页面尺寸,可通过page1.mediabox.width和page1.mediabox.height获取,以此精准计算空白页尺寸,比如:single_page = PageObject.create_blank_page(width=page1.mediabox.width*0.7*2, height=page1.mediabox.height*0.7)

内容的提问来源于stack exchange,提问作者gallochri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 20:03:11