# OCR复用 + OnlyOffice渲染技巧 ## OCR复用(跳过Step 1提取) 前session已提取的 `*_全文.md` / `*_全文_OCR.md` 文件若已存放于Nextcloud校区目录, 可直接复用,无需重新OCR。 ### 确认步骤: ```bash # 1. 列出已有MD文件 sudo docker exec nextcloud-nextcloud-1 find "<校区容器路径>" -name "*.md" -type f | sort # 2. 逐份对照PDF清单——每份PDF都有对应MD即可跳过提取 # 3. docker cp 到本地 sudo docker exec nextcloud-nextcloud-1 cat "<容器内MD路径>" > /tmp/<工作目录>/<文件名>.md # 4. 仍须跑 garble 检测确认质量 python3 ~/.hermes/skills/legal/contract-portfolio-analysis/scripts/ocr-garble-detect.py <文件>.md # 5. 高危乱码 vision 核实 → 全灭后进 Step 2 ``` ### 世茂校区实证(2026-07-02): 4份合同全部已有MD提取文件,直接跑garble检测: - 青少租赁:15处高危(大部分在目录页OCR噪声+附件表格),关键条款vision验证通过 - 青少物业:6处高危 - 高中租赁:18处高危 - 高中物业:2处高危 关键金融数据(面积/租金/税率)通过vision交叉验证确认准确后,整体Step 1节省约20分钟。 --- ## OnlyOffice x2t 渲染 — 写XML的权限问题 ### 问题: `docker exec ... bash -c 'cat > /tmp/convert.xml << EOF ...'` 经常报 "Permission denied", 因为容器内 `/tmp` 可能被前次操作留下的 root 文件占用。 ### 解决方案:用 Python 写文件 ```bash sudo docker exec nextcloud-onlyoffice-1 rm -f /tmp/input.xlsx /tmp/output.pdf /tmp/convert.xml sudo docker cp <本地xlsx> nextcloud-onlyoffice-1:/tmp/input.xlsx sudo docker exec nextcloud-onlyoffice-1 python3 -c " with open('/tmp/convert.xml', 'w') as f: f.write(''' /tmp/input.xlsx /tmp/output.pdf 513 ''') " sudo docker exec nextcloud-onlyoffice-1 /var/www/onlyoffice/documentserver/server/FileConverter/bin/x2t /tmp/convert.xml sudo docker cp nextcloud-onlyoffice-1:/tmp/output.pdf <本地输出路径> ``` ### 关键点: - 先 `rm -f` 清理旧文件避免权限冲突 - 用 `python3 -c` 写文件比 bash heredoc 可靠(避免容器内 shell 权限/重定向问题) - `m_nFormatTo=513` = PDF格式 ### 已知限制: - x2t渲染PDF时,白色字体在深色背景上可能不显示(字体嵌入问题) - 这不影响xlsx本身——用户在OnlyOffice中打开时白色文字正常显示 - 视觉验证时注意:标题行的白色文字不显示≠格式错误,属x2t渲染特性