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

Mac快捷指令执行Shell脚本编辑PDF时文件损坏/报错求助

修复PDF模板文本替换导致文件损坏的问题

原脚本问题点

  • qpdf参数逻辑混乱:原命令把输入模板($1)和目标输出文件混在一起使用,且直接用--replace-input覆盖文件,容易破坏原模板
  • sed语法错误:替换格式里的括号、引号转义错误,且未匹配PDF里实际的“dear client”文本,也没处理客户名称中的特殊字符(比如空格、&)
  • 冗余配置写入:每次运行都追加brew环境配置到.zprofile,会导致配置重复
  • 路径重复风险:输入输出文件用同一路径,出错直接损坏原模板

修复后的Bash脚本方案

# 加载Homebrew环境(仅当前会话生效,不重复写入配置)
eval "$(/opt/homebrew/bin/brew shellenv)"

# 单独存放模板文件,避免直接修改原模板
TEMPLATE_PDF="/Users/jonathan/Desktop/Personal Trainer Stuff/Client Documents/Templates/WELCOME_FORM_TEMPLATE.pdf"
# 输出路径用变量替换客户名称
OUTPUT_PDF="/Users/jonathan/Desktop/Personal Trainer Stuff/Client Documents/Signed Client Forms/${Client_Name}/${Client_Name}_WELCOME_FORM.pdf"

# 确保输出目录存在,防止路径错误
mkdir -p "$(dirname "$OUTPUT_PDF")"

# 1. 复制模板到输出路径,保护原模板
cp "$TEMPLATE_PDF" "$OUTPUT_PDF"

# 2. 解压PDF流数据,让sed可以识别文本
qpdf --stream-data=uncompress "$OUTPUT_PDF" --replace-input

# 3. 转义客户名称中的特殊字符,避免sed报错
ESCAPED_CLIENT_NAME=$(printf '%s\n' "$Client_Name" | sed -e 's/[\/&]/\\&/g')
# 匹配PDF里的"dear client"并替换,Mac版sed需要加-i ''参数
sed -i '' "s/dear client/dear $ESCAPED_CLIENT_NAME/g" "$OUTPUT_PDF"

# 4. 重新压缩PDF,恢复正常格式
qpdf --stream-data=compress "$OUTPUT_PDF" --replace-input

关键修正说明

  • 模板和输出文件分离,避免原模板被损坏
  • 用mkdir -p自动创建客户专属目录
  • 转义客户名称中的特殊字符,适配sed语法
  • 严格按“解压→替换→压缩”流程操作PDF

可选方案:使用PDF Expert命令行工具

如果你已经购买PDF Expert,用它的命令行工具更安全,不会破坏PDF结构:

  1. 打开PDF Expert,进入「偏好设置→高级」,启用「命令行工具」
  2. 使用以下脚本替换文本:
eval "$(/opt/homebrew/bin/brew shellenv)"

TEMPLATE_PDF="/Users/jonathan/Desktop/Personal Trainer Stuff/Client Documents/Templates/WELCOME_FORM_TEMPLATE.pdf"
OUTPUT_PDF="/Users/jonathan/Desktop/Personal Trainer Stuff/Client Documents/Signed Client Forms/${Client_Name}/${Client_Name}_WELCOME_FORM.pdf"

mkdir -p "$(dirname "$OUTPUT_PDF")"
cp "$TEMPLATE_PDF" "$OUTPUT_PDF"

# PDF Expert原生替换,自动处理PDF结构
pdfexpert replace-text "$OUTPUT_PDF" --find "dear client" --replace "dear ${Client_Name}" --output "$OUTPUT_PDF"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 06:04:58