本程式旨在處理和分析包含「公司基本資料表」、「營業人銷售額與稅額申報書清單(401表)」、「營業人銷售額與稅額申報書(403表)」、「數位發展部數位產業署投標廠商聲明書」、「支票」、「ISO/IEC 27001證書」以及「投標報價單」多種格式的 PDF 文件和圖像檔案。
主要功能包括:
- OCR辨識與關鍵字提取:對文件進行光學字符識別(OCR)處理,依據不同檔案類型從中提取關鍵資訊。
- 資料整理: 如有需要會依據ocr辨識的結果,進一部查表填充,使資料完整。
- 資料自動歸檔:支援同一家公司資料和不同家公司資料批次匯入系統,按照ocr辨識的統一編號(ocr_id)或是使用者鍵入的統一編號(cid)來歸檔。
- 檔名自動命名: 檔名自動按照文件類別重命名。
- 數據核對:與商業司線上API進行資料核對,檢查本地提取的數據與官方資料庫中的記錄是否一致。
以下是本程式支援的命令行參數列表:
參數 | 描述 |
---|---|
-o |
指定輸出資料夾的路徑,所有處理後的文件將保存在此路徑。 |
-c |
統一編號,將這個統一編號加入到輸出的 JSON 文件中。 |
-a |
啟用自動分類功能,按照統一編號或文件類型對文件進行分類。 |
-api |
啟用與商業司API的連接,用於核對和驗證抽取的數據。 |
-f |
根據規則重新命名文件,以便於檔案管理和檢索。 |
-s |
產生統計摘要文件,JSON格式,匯總處理結果的概要信息。 |
-e |
提供公司的英文名稱,並在27001證書處理過程中比對 |
main 001.jpg 002.jpg -api -f -s -o ./path/12345678 -c 12345678 -e "Taiwan Technology Inc."
代碼 | 檔案類型 | 輸出欄位 |
---|---|---|
00 | 不明類別 | code , filename , ocr_data , table |
01 | 基本資料表 | code , filename , ocr_data , table , ocr_cid , company_name , boss_name , business_code |
02 | 納稅證明(401/403表) | code , filename , ocr_data , table , ocr_cid , company_name , boss_name , date , stamp |
03 | 廠商聲明書 | code , filename , ocr_data , table , ocr_cid |
04 | 支票 | code , filename , ocr_data , table , name , bank1 , bank2 , money , date , serial |
05 | ISO27001 | code , filename , ocr_data , table , company_name , compare , expiry_date |
06 | 報價單 | code , filename , ocr_data , table , ocr_cid , company_name |
欄位 | 說明 | 格式 |
---|---|---|
code |
檔案類別代碼 | string |
filename |
檔案名稱 | array (跨頁檔案將有多個檔案名稱) |
ocr_data |
OCR辨識結果 | string |
table |
資料類別中文全名 | string |
ocr_cid |
公司統編(-c) | string |
company_name |
公司名稱(ocr) | string |
boss_name |
負責人名稱(ocr) | string |
business_code |
營業項目(ocr) | string (逗點分隔) |
date |
支票日期(ocr) | string |
stamp |
營業稅網路申報收件章 | boolean |
name |
支票抬頭(ocr) | string |
bank1 |
支票銀行(ocr) | string |
bank2 |
支票銀行分行(ocr) | string |
money |
支票金額(ocr) | string (阿拉伯數字) |
serial |
支票號碼(ocr) | string |
compare |
與輸入對比結果(-e) | boolean |
expiry_date |
ISO27001到期日(ocr) | string |
欄位 | 說明 | 格式 |
---|---|---|
ocr_cid |
公司統編(-c) | string |
company_name |
同一家公司名辨識集合(set) | array |
boss_name |
同一家負責人名辨識集合(set) | array |
allMatch |
同一家公司辨識是否一致 | boolean |
api |
gcis-api | array |
將上述兩個檔案整理,計算各類別數量,並將結果輸出。
本專案使用了以下主要依賴包:
- Pillow: 用於圖片旋轉和處理,確保圖像處於正確的方向。
- opencv-python (opencv): 用於圖像處理和視覺相關任務,本專案中主要用於核取方塊勾選定位。
- PyMuPDF: 處理PDF文件,將PDF頁面轉換成圖片,以便進行後續的圖像處理和OCR。
- pytesseract: Tesseract-OCR 的 Python 封裝,用於初步偵測圖像是否顛倒,協助進行圖像校正。
- google-cloud-vision: Google 的雲端視覺識別服務,是本專案的主要OCR工具。
- PySide2: 提供完整的 Qt5 框架封裝,用於構建用戶界面。
- pandas: 數據處裡和讀取CSV檔案。
- requests: 處理 HTTP 請求的實用工具,用於與 API 交互。
- cyclonedx-py: 用於生成軟件物料清單(SBOM)。
- pyinstaller: 生成可執行文件。