PDF编辑需求:不缩放内容改页尺寸或不转页面转内容(求跨平台工具)
跨平台命令行解决方案:用MuPDF的
mutool工具实现面单拼接 核心思路
先将竖版A4页面内的A5面单调整为独立的A5页面(或旋转内容适配横版A5),再将两个A5页面拼合到一张竖版A4纸上,全程无缩放,仅调整页面尺寸和拼接布局。
步骤1:安装mutool
- Linux:通过包管理器安装,比如Debian/Ubuntu系:
sudo apt install mupdf-tools;Fedora/RHEL系:sudo dnf install mupdf - Windows:下载MuPDF预编译二进制包,解压后将
mutool.exe所在路径添加到系统环境变量,即可在命令行直接调用。
步骤2:处理单张面单PDF
情况1:原A5面单在竖版A4页面内(上下有空白)
先裁剪掉A4页面的上下空白,得到纯A5面单:
# 参数格式:mutool crop -o 输出文件 输入文件 left bottom width height(单位:mm) # A4高度297mm,A5高度210mm,上下空白各约43.5mm,取44mm留余量 mutool crop -o cropped.pdf input.pdf 0 44 210 210
再将两个裁剪后的A5页面拼到竖版A4:
# -t "2x1" 表示横向排列2个页面,纵向1行,适配竖版A4 mutool merge -o double_label.pdf -t "2x1" cropped.pdf cropped.pdf
情况2:直接旋转内容并调整页面尺寸(无需裁剪)
如果允许旋转内容,可直接将原页面内容旋转90度,调整为横版A5尺寸,再拼接:
# -r 90 旋转内容90度;-W 210 -H 148 设置页面为横版A5尺寸(210×148mm) mutool draw -o rotated.pdf -r 90 -W 210 -H 148 input.pdf # 拼接两个横版A5页面到竖版A4 mutool merge -o double_label.pdf -t "2x1" rotated.pdf rotated.pdf
批量处理脚本
Linux Shell脚本
#!/bin/bash # 批量处理当前目录下所有PDF面单 for pdf_file in *.pdf; do # 裁剪空白得到A5面单 mutool crop -o "${pdf_file%.pdf}_cropped.pdf" "$pdf_file" 0 44 210 210 # 拼接成双页A4 mutool merge -o "${pdf_file%.pdf}_double.pdf" -t "2x1" "${pdf_file%.pdf}_cropped.pdf" "${pdf_file%.pdf}_cropped.pdf" # 删除临时文件 rm "${pdf_file%.pdf}_cropped.pdf" done
Windows批处理脚本
@echo off :: 批量处理当前目录下所有PDF面单 for %%f in (*.pdf) do ( mutool crop -o "%%~nf_cropped.pdf" "%%f" 0 44 210 210 mutool merge -o "%%~nf_double.pdf" -t "2x1" "%%~nf_cropped.pdf" "%%~nf_cropped.pdf" del "%%~nf_cropped.pdf" )
方案优势
- 完全跨平台,支持Linux和Windows命令行操作
- 无需缩放内容,仅通过裁剪/旋转/拼接实现需求,符合内容无缩放的要求
- 可批量处理,效率远高于手动截图粘贴
- 工具体积小,依赖少,安装配置简单
内容的提问来源于stack exchange,提问作者user1007074
相关产品推荐
相关产品推荐

