用Python将A4纸扩展为A3纸,可以在右侧记笔记

#python3.12


#边距占比marginp
marginp=0.00
# 使用示例
input=r"I:\2025-l2-topics-combined.pdf"
input=input.replace("\\","/")
output_a3="I:/GOOD.pdf"


import pymupdf
import fitz  # 安装:pip install pymupdf

def convert_a4_to_a3(input_path, output_path):
    # 打开原始PDF
    src_doc = fitz.open(input_path)

    # 创建新PDF文档
    dst_doc = fitz.open()

    for page in src_doc:
        # 定义横版A3页面尺寸(宽1190.4,高841.68)
        a3_width = 1190.4
        a3_height = 841.68
        new_page = dst_doc.new_page(width=a3_width, height=a3_height)

        # 计算原A4内容在A3左半边的位置(保留边距5%)
        margin = a3_width * marginp  # 左右各留5%边距
        content_width = (a3_width / 2) - 2 * margin
        content_height = a3_height - 2 * margin

        # 定义内容显示区域(左半部分居中)
        target_rect = fitz.Rect(
            margin,
            margin,
            (a3_width / 2) - margin,
            a3_height - margin
        )

        # 将原页面内容插入到新位置(自动缩放适应目标区域)
        new_page.show_pdf_page(
            target_rect,  # 目标区域
            src_doc,  # 源文档
            page.number,  # 源页码
            keep_proportion=True  # 保持宽高比
        )

    # 保存处理后的PDF
    dst_doc.save(output_path)
    print(f"处理完成,保存至:{output_path}")
convert_a4_to_a3(input, output_a3)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值