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

求Python实现PDF转DIN-A4并添加3mm黑色边距的解决方案

解决方案:用Python处理PDF的缩放与黑边添加

可以使用**PyMuPDF(fitz)**库实现需求,这个库对PDF的页面操作支持非常灵活,步骤如下:

步骤说明

  1. 单位转换:PyMuPDF以点(pt)为单位,先将毫米转换为点(1mm ≈ 2.83465pt)。
  2. 页面缩放:检查原始PDF页面尺寸,将非A4页面按比例缩放到A4(210×297mm)尺寸,确保内容完整显示并居中。
  3. 添加黑边:创建更大尺寸的页面(216×303mm),填充黑色背景后,将缩放后的A4页面居中放置,形成3mm的黑色边距。

实现代码

import fitz  # PyMuPDF

# 毫米转点的转换系数
mm_to_pt = 2.83465

# 定义所有尺寸参数(mm)
a4_w, a4_h = 210, 297
final_w, final_h = 216, 303
margin = 3

# 转换为pt单位
a4_w_pt = a4_w * mm_to_pt
a4_h_pt = a4_h * mm_to_pt
final_w_pt = final_w * mm_to_pt
final_h_pt = final_h * mm_to_pt
margin_pt = margin * mm_to_pt

# 输入输出路径
input_pdf = "你的输入文件.pdf"
output_pdf = "处理后的文件.pdf"

# 创建输出PDF文档
output_doc = fitz.open()

with fitz.open(input_pdf) as input_doc:
    for page in input_doc:
        # 获取当前页面尺寸
        curr_w, curr_h = page.rect.width, page.rect.height

        # 计算适配A4的缩放因子(保持宽高比)
        scale_x = a4_w_pt / curr_w
        scale_y = a4_h_pt / curr_h
        scale = min(scale_x, scale_y)

        # 创建临时A4页面,放入缩放后的内容并居中
        temp_page = output_doc.new_page(width=a4_w_pt, height=a4_h_pt)
        temp_page.show_pdf_page(temp_page.rect, input_doc, page.number, scale=scale)

        # 创建最终页面,填充黑色背景
        final_page = output_doc.new_page(width=final_w_pt, height=final_h_pt)
        final_page.draw_rect(final_page.rect, fill=(0, 0, 0))  # 黑色填充

        # 将A4页面居中放到最终页面(预留边距)
        a4_in_final_rect = fitz.Rect(
            margin_pt,
            margin_pt,
            final_w_pt - margin_pt,
            final_h_pt - margin_pt
        )
        final_page.show_pdf_page(a4_in_final_rect, output_doc, temp_page.number)

        # 删除临时页面
        output_doc.delete_page(temp_page.number)

# 保存结果
output_doc.save(output_pdf)
output_doc.close()

关键细节

  • 缩放逻辑:使用最小缩放因子确保原始内容完整适配A4,不会被裁剪;如果需要强制拉伸至A4(允许变形),可以把scale = min(scale_x, scale_y)改成scale = max(scale_x, scale_y)。
  • 黑边实现:通过先给大尺寸页面填充黑色,再嵌入A4页面,自然形成四周的黑色边距。
  • 兼容性:支持横向、纵向的原始PDF页面,也支持多页PDF批量处理。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 08:05:34