import json import subprocess from IdentifyModel.cardModel import parse_id_card from Plan.AiLLM import extract_entities def pytesseractJs_recognition(validation_type, image, temp_path, file_name, language): try: # 使用 subprocess 執行 JavaScript 代碼,傳遞語言參數 result = subprocess.run( ['node', 'node_app/pytesseractJsOCR.js', image, language, temp_path + file_name], capture_output=True, text=True ) # print(result.stdout) # 打印子進程的標準輸出 print(' ###### result.stderr:' + result.stderr) # 打印子進程的錯誤輸出 with open(temp_path + file_name, 'r') as file: out_ocr_text = file.read() entities = extract_entities(out_ocr_text) parsed_result = parse_id_card(out_ocr_text, validation_type, entities) print(' ###### parsed_result:' + str(parsed_result)) # 確保返回的數據是有效的 JSON json_result = json.dumps(parsed_result) print(' ###### json_result:' + str(json_result)) return json_result except Exception as e: print(' ###### [ERROR] pytesseractJs_recognition Exception:' + str(e)) return str(e)