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

如何用Shell脚本移除Chrome生成PDF的浏览器页眉页脚冗余内容?

移除Chrome生成PDF中的冗余页眉页脚(保留页码)

方案一:生成PDF时直接控制(推荐)

Chrome的命令行工具支持自定义页眉页脚模板,能直接生成仅含页码的PDF,无需事后修改,效率更高。

假设你的HTML文件是hello.html,执行以下命令:

google-chrome --headless --disable-gpu --print-to-pdf="output.pdf" \
  --header-template="" \
  --footer-template='<span style="font-size:10px; margin:auto;">第<span class="pageNumber"></span>页,共<span class="totalPages"></span>页</span>' \
  file:///path/to/hello.html
  • --header-template="" 清空页眉,去除默认的标题、URL等内容
  • --footer-template 自定义页脚,仅保留页码信息,样式可按需调整

方案二:已生成PDF的事后移除脚本

如果已经有带冗余内容的PDF,可通过Shell脚本结合工具裁剪页面,去掉页眉页脚所在区域。

用pdfcrop的脚本示例

#!/bin/bash
INPUT_PDF="$1"
OUTPUT_PDF="clean_${INPUT_PDF}"

# 裁剪参数:左、上、右、下边距(单位:bp,1bp≈0.35mm)
# 需根据Chrome生成PDF的实际页眉页脚高度微调,通常顶部/底部各留30bp左右
pdfcrop --margins '0 30 0 30' "$INPUT_PDF" "$OUTPUT_PDF"

使用方式:

chmod +x clean_pdf.sh
./clean_pdf.sh your_chrome_pdf.pdf

用mutool的脚本示例

#!/bin/bash
INPUT_PDF="$1"
OUTPUT_PDF="clean_${INPUT_PDF}"

# 获取PDF页面尺寸(宽x高,单位:pt)
PAGE_SIZE=$(mutool info "$INPUT_PDF" | grep "Page size" | awk '{print $3}')
WIDTH=$(echo "$PAGE_SIZE" | cut -d'x' -f1)
HEIGHT=$(echo "$PAGE_SIZE" | cut -d'x' -f2)

# 计算裁剪后的高度:去掉顶部30pt和底部30pt
NEW_HEIGHT=$(echo "$HEIGHT - 60" | bc)

# 裁剪页面,保留中间有效内容区域
mutool draw -o "$OUTPUT_PDF" -c "0 30 $WIDTH $NEW_HEIGHT" "$INPUT_PDF"

使用前需安装MuPDF工具(sudo apt install mupdf-tools),执行方式同上。

关于Print CSS的补充

你提到Print CSS支持性不佳是准确的,不同浏览器对@page规则的实现差异极大,Chrome打印引擎对自定义页眉页脚的CSS支持有限,因此命令行参数或事后裁剪的方案更可靠。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 14:48:11