创建Apple脚本/Automator应用批量处理PDF链接黑框问题
批量移除Figma导出PDF中链接的黑框(支持拖放操作)
Figma导出带文本链接的PDF后,在Acrobat等阅读器里链接会显示带细黑线的黑框,手动替换PDF文本里的/Link为/Link /Border [0 0 0]可以解决,但文件多的时候效率太低,下面提供两个支持拖放的自动处理方案:
方案1:Windows批处理脚本(无需额外环境)
直接用系统自带的PowerShell实现文本替换,适合Windows用户:
@echo off setlocal enabledelayedexpansion :: 遍历所有拖入的PDF文件 for %%f in (%*) do ( echo 正在处理: %%f set "temp_file=%%~dpnf_temp.pdf" :: 执行替换并写入临时文件 powershell -Command "(Get-Content '%%f') -replace '/Link', '/Link /Border [0 0 0]' | Set-Content '!temp_file!' -Encoding ASCII" :: 覆盖原文件 move /y "!temp_file!" "%%f" echo 处理完成: %%f ) echo 所有文件处理完毕! pause
使用方法
- 把上面的代码复制到记事本,保存为
RemovePDFLinkBorder.bat(注意保存类型选「所有文件」) - 直接把需要处理的PDF文件拖到这个批处理文件图标上,脚本会自动批量处理
方案2:Python脚本(跨平台支持)
适合Windows/Mac/Linux用户,需要先安装Python环境:
import os import sys def fix_pdf_link_border(pdf_path): try: # 用latin-1编码读取,避免PDF特殊字符乱码 with open(pdf_path, 'r', encoding='latin-1') as f: content = f.read() # 替换链接指令,添加无边框参数 updated_content = content.replace('/Link', '/Link /Border [0 0 0]') # 写回原文件 with open(pdf_path, 'w', encoding='latin-1') as f: f.write(updated_content) print(f"✅ 处理完成: {pdf_path}") except Exception as e: print(f"❌ 处理失败 {pdf_path}: {str(e)}") if __name__ == "__main__": if len(sys.argv) < 2: print("请拖放PDF文件到脚本上,或者在命令行传入文件路径") sys.exit(1) # 遍历所有传入的文件 for file_path in sys.argv[1:]: if file_path.lower().endswith('.pdf'): fix_pdf_link_border(file_path) else: print(f"⚠️ 跳过非PDF文件: {file_path}") print("\n所有文件处理完成!")
使用方法
- 保存代码为
remove_pdf_link_border.py - 把PDF文件拖到这个脚本文件上,或者在终端执行
python remove_pdf_link_border.py 文件1.pdf 文件2.pdf
注意事项
- 处理前务必备份PDF文件,避免因文件格式特殊(比如加密、压缩PDF)导致损坏
- 加密或压缩后的PDF无法直接用文本替换处理,需要先解密/解压后再操作
内容的提问来源于stack exchange,提问作者toomze
相关产品推荐
相关产品推荐

