/**

✅ 【完全に定義済み】

【共通情報セクション】 ✅ faculty (学部・研究科) - テキスト左下 (100, 760) ✅ grade (年次) - テキスト左下 (400, 760) ✅ studentNumber (学生証番号) - 6桁マス入力 (125-235, 700) ✅ studentName (氏名) - テキスト左下 (100, 745) ✅ studentNameKana (フリガナ) - テキスト左下 (100, 730) ✅ mobilePhone (携帯電話) - 3部分電話番号 (70/110/160, 680) ✅ fixedPhone (固定電話) - 3部分電話番号 (70/120/175, 665) ✅ addressType (住所区分) - ○円の中心 (85/160/240, 640)

【受付番号セクション】 ✅ receiptNumbers (受付番号) - 複数テキスト (baseX:100, baseY:370, spacing:80)

【傷病情報セクション】 ✅ diseaseName (傷病名) - テキスト左下 (100, 620)

【負傷情報セクション】 ✅ injuryContext (負傷状況) - ✓マーク (90/180/280/385/480/540, 595) ├─ 正課中 │ ✅ subjectName (科目名) - テキスト左下 (100, 575) ├─ 大学行事中 │ ✅ eventName (行事名) - テキスト左下 (100, 575) ├─ 課外活動中 │ ✅ clubName (団体名) - テキスト左下 (100, 575) └─ 交通事故 ✅ accidentParty (相手有無) - ○円の中心 (90/170, 510)

✅ injuryLocation (けがの場所) - テキスト左下 (100, 560) ✅ injuryCause (原因) - テキスト左下 (100, 545) ✅ injuryDate (負傷日) - 年月日分割 (100/145/185, 525)

【金融機関セクション】 ✅ bankTransferType (振込先選択) - ○円の中心 (85/200/270, 480) ├─ 新規 │ ✅ bankName (金融機関名) - テキスト左下 (100, 455) │ ✅ branchName (支店名) - テキスト左下 (100, 440) │ ✅ bankCode (銀行コード) - テキスト左下 (100, 425) │ ✅ branchCode (支店コード) - テキスト左下 (170, 425) │ ✅ accountName (口座名義) - テキスト左下 (100, 410) │ ✅ accountNumber (口座番号) - 7桁マス入力 (310-442, 395) └─ 変更 ✅ (上記と同じ)


📊 【座標定義統計】

テキストフィールド: 13個

複数部位フィールド: 5個

ラジオボタン(○描画): 4個

リスト: 1個

──────────────────────── 合計フィールド: 23個


✅ 【preparePDFData() 関数の処理確認】

整形済み: ✅ faculty, grade, studentName, studentNameKana ✅ studentNumber → 6要素の配列 ✅ mobilePhone → {area, exchange, subscriber} ✅ fixedPhone → {area, exchange, subscriber} ✅ addressType → {value, label, x, y, radius} ✅ diseaseName ✅ injuryContext → {value, label, x, y} ✅ subjectName, eventName, clubName ✅ injuryLocation, injuryCause ✅ injuryDate → {year, month, day} ✅ accidentParty → {value, label, x, y, radius} ✅ bankTransferType → {value, label, x, y, radius} ✅ bankName, branchName, bankCode, branchCode, accountName ✅ accountNumber → 7要素の配列(右づめ) ✅ receiptNumbers → 配列


✅ 【座標基準点の確認】

テキスト(drawText): 基準点は文字列の「左下コーナー」 例: x=100, y=700 → 文字の左端(x=100)と下端(y=700)から右上へ伸びる

マス入力(数字1個ずつ): 基準点は数字の「左下コーナー」 例: positions[i] = {x: 125, y: 700} → i番目の数字の左下が(125, 700)

ラジオボタン・チェック(○で囲む): 基準点は円の「中心」 例: x=85, y=640, radius=5 → 中心が(85, 640)で半径5ptの円

チェックマーク(✓): 基準点は記号の「左下コーナー」 例: x=90, y=595 → ✓の左下が(90, 595)


✅ 【条件付きフィールドの注記】

以下のフィールドは条件に基づいて表示/非表示が決まります:

● subjectName / eventName / clubName 条件: injuryContext の値に応じて

● accidentParty 条件: injuryContext === “交通事故” の場合のみ表示

● bankName, branchName, bankCode, branchCode, accountName, accountNumber 条件: bankTransferType !== “previous” の場合のみ表示


✅ 【実装時の次のステップ】

PDF書き込み関数の実装では、以下を行います:

  1. pdfData の各フィールドを読み込む
  2. PDF_FIELD_MAPPINGS から座標と設定を取得
  3. PDF-LIB の API で描画:
    • drawText() → テキスト書き込み
    • drawCircle() → ○描画
    • drawText(‘✓’) → チェックマーク描画
  4. 条件付きフィールドは conditional チェックの後に処理
  5. 複数部位フィールド(電話、日付、マス数字)は各パートを個別に描画

✅ 【完全性確認結論】

✅ すべての必須フィールドで座標定義あり ✅ 全フィールドが preparePDFData() で処理される ✅ 条件付きロジックも対応済み ✅ 座標基準点が明確に定義されている

→ PDF書き込みロジック実装の準備完了

ランダム文字列生成 文字カウンタ 制作物 リンク集 サイトマップ