68 lines
2.7 KiB
Markdown
68 lines
2.7 KiB
Markdown
# 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('''<?xml version=\"1.0\" encoding=\"utf-8\"?>
|
|
<TaskQueueDataConvert xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\">
|
|
<m_sFileFrom>/tmp/input.xlsx</m_sFileFrom>
|
|
<m_sFileTo>/tmp/output.pdf</m_sFileTo>
|
|
<m_nFormatTo>513</m_nFormatTo>
|
|
</TaskQueueDataConvert>''')
|
|
"
|
|
|
|
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渲染特性
|