修复PDF/SVG矢量图形乱码以便AI最终编辑。检测、替换并修复矢量文件中的乱码,保持原始格式。
矢量文本修复器是一项面向实际任务的技能,主要用于PDF/ SVG 矢量图形中Fixes 粘贴文本, 使其可以在 AI 工具中编辑;Garbled 文本检测 : 在 PDF/ SVG 文件中自动识别粘贴文本;
该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;
若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
修复 PDF/SVG 矢量图形中的乱码文本,使其可在 AI 工具中编辑。
# 修复单个 PDF 文件 python scripts/main.py --input document.pdf --output fixed.pdf # 修复单个 SVG 文件 python scripts/main.py --input diagram.svg --output fixed.svg # 批量处理文件夹 python scripts/main.py --batch ./input_folder --output ./output_folder # 交互式修复(手动指定替换内容) python scripts/main.py --input doc.pdf --interactive # 导出为可编辑格式(JSON) python scripts/main.py --input doc.pdf --export-json editable.json
from scripts.main import VectorTextFixer
# 创建修复器实例
fixer = VectorTextFixer()
# 修复 PDF
result = fixer.fix_pdf("input.pdf", "output.pdf")
# 修复 SVG
result = fixer.fix_svg("input.svg", "output.svg")
# 批量处理
results = fixer.batch_fix("./input_folder", "./output_folder")
# 获取文本映射(用于 AI 编辑)
text_map = fixer.extract_text_map("input.pdf")
| 参数 | 类型 | 是否必需 | 说明 |
|---|---|---|---|
--input |
str | 是* | 输入文件路径(PDF 或 SVG) |
--batch |
str | 否 | 批量处理的输入文件夹路径 |
--output |
str | 是* | 输出文件或文件夹路径 |
--interactive |
bool | 否 | 启用交互式修复模式 |
--export-json |
str | 否 | 导出为可编辑的 JSON 格式 |
--encoding |
str | 否 | 指定源文件编码(默认:自动检测) |
--font-substitution |
dict | 否 | 字体替换映射表 |
--repair-level |
str | 否 | 修复级别:minimal、standard、aggressive(默认:standard) |
*--input 与 --batch 至少需指定其一
{
"file_type": "pdf",
"pages": [
{
"page_num": 1,
"text_blocks": [
{
"id": "tb_001",
"bbox": [100, 200, 300, 220],
"original_text": "",
"detected_encoding": "UTF-8",
"confidence": 0.3,
"suggested_fix": "Sample Text"
}
]
}
],
"fonts_used": ["Arial", "SimSun"],
"repair_summary": {
"total_blocks": 15,
"fixed_blocks": 12,
"skipped_blocks": 3
}
}
本工具采用以下规则检测乱码文本:
输入:
python scripts/main.py --input report.pdf --output fixed_report.pdf
输出:
✓ Processing: report.pdf ✓ Detected 5 garbled text blocks ✓ Fixed 4 blocks automatically ⚠ 1 block requires manual review ✓ Output saved: fixed_report.pdf ✓ Report saved: fixed_report_repair_log.json
输入:
python scripts/main.py --input diagram.svg --export-json editable.json
输出 JSON 结构:
{
"file_type": "svg",
"svg_info": {
"width": 800,
"height": 600,
"viewBox": "0 0 800 600"
},
"text_elements": [
{
"id": "text_1",
"x": 100,
"y": 200,
"font_family": "Arial",
"font_size": 14,
"original": "",
"user_editable": "",
"confidence": 0.25
}
]
}
pdfplumber>=0.10.0 # PDF 解析 PyMuPDF>=1.23.0 # PDF 处理(fitz) cairosvg>=2.7.0 # SVG 转换 beautifulsoup4>=4.12.0 # SVG 解析 fonttools>=4.40.0 # 字体处理 chardet>=5.0.0 # 编码检测 Pillow>=10.0.0 # 图像处理
| 风险指标 | 评估说明 | 风险等级 |
|---|---|---|
| 代码执行 | Python/R 脚本在本地执行 | 中 |
| 网络访问 | 不调用任何外部 API | 低 |
| 文件系统访问 | 读取输入文件,写入输出文件 | 中 |
| 指令篡改 | 遵循标准提示指南 | 低 |
| 数据暴露 | 输出文件保存至 workspace | 低 |
# Python 依赖安装 pip install -r requirements.txt
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 134.1万人学习
共49课时 | 82.6万人学习
最新文章