#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""看单据全文：文本层 + OCR（诊断归类用）"""
import sys, os, glob, re, subprocess, tempfile
import fitz

OCR = core.OCR_BIN


def dump(path, label=''):
    doc = fitz.open(path)
    layer = '\n'.join(p.get_text() for p in doc)
    doc.close()
    ocr = ''
    if os.path.exists(OCR):
        try:
            r = subprocess.run([OCR, path], capture_output=True, timeout=120)
            ocr = r.stdout.decode('utf-8', 'ignore')
        except Exception:
            ocr = ''
    print('═══ %s ｜ %s' % (label, os.path.basename(path)))
    print('   [文本层 %d 字]' % len(layer))
    print('   ' + re.sub(r'\n+', ' / ', layer)[:600])
    if ocr:
        print('   [OCR %d 字]' % len(ocr))
        print('   ' + re.sub(r'\n+', ' / ', ocr)[:700])
    print()


if __name__ == '__main__':
    for a in sys.argv[1:]:
        hits = []
        for base in ('数据/收件箱/已处理', '数据/收件箱'):
            hits += glob.glob(os.path.join(base, '*%s*' % a))
        if hits:
            dump(hits[0], a)
        else:
            print('未找到:', a)
