📐 命名規則
① 開會日期(MMDD)
0215
月份+日期,各補零至2碼
2月15日 → 0215
6月1日 → 0601
② 會員代號(系統產生)
51FF20
由身分證字號 SHA-256 確定性產生
同一身分證永遠相同(6碼大寫英數)
③ 股票代號
2330
集保系統股票代號
4~6碼數字
完整範例:0215_51FF20_2330.pdf  ←  2月15日・身分證A123456789・台積電(2330)
1 開會日期 MMDD 計算
月份(1–12)
日期(1–31)
MMDD(自動)
——
2 身分證字號 → 會員代號
身分證字號(逗號分隔多筆)
計算結果
3 批次 PDF 檔名預覽
股票代號(逗號分隔)
目前設定
開會日:——
身分證筆數:0
股票筆數:0
⚙️ Electron 整合說明

實際 PDF 列印由 src/automation/print_pdf.js 模組負責,
需對 main_flow.js 進行 3 處修改。詳見 開發者指南

  main_flow.js — 修改摘要
// ① require 換掉
const { printToPdf, isPdfExists } = require('./print_pdf');

// ② 智慧補:isScreenshotExists → isPdfExists
if (isPdfExists(saveDir, idNumber, meeting, flat)) continue;

// ③ 執行:takeScreenshot → printToPdf
const pdfPath = await printToPdf(webContents, meeting, saveDir, idNumber, {flat});
sendLog(`PDF 已儲存:${pdfPath}`);
📌 meeting 物件需含 stockCode(股票代號)與 meetingDate(開會日期,如 '2026-02-15')。
📌 會員代號演算法:SHA-256(身分證字號.toUpperCase()).slice(0,6).toUpperCase()