# PDF 帳票テンプレート設計 - 母艦お局様 ## 1. ポリシー概要 | 項目 | 内容 | | --- | --- | | **テンプレート基準** | A5 サイズ(210mm x 297mm)- 印刷・メール送信対応 | | **レイアウト方式** | 縦型フォーマット - ヘッダー / フッター統一デザイン | | **帳票種別** | 見積書 / 伝票類 / 請求書 / 領収書 | | **PDF 生成ライブラリ** | `flutter_pdf_generator`(機能性重視) | --- ## 2. レイアウト定義 ### 📐 ヘッダーエリア(統一) ``` ┌─────────────────────────────────────┐ │ 🏢 LOGO │ ← 右上に配置 │ ────────────────────────────────── │ │ 会社名:〇〇株式会社 │ │ 代表者:田中次郎 │ │ アドレス:東京都港区_test 1-1-1 │ │ TEL:03-1234-5678 / FAX:03-1234-5679│ │ 📧 mail@example.com │ ← メールアイコン付き │ ────────────────────────────────── │ │ 帳票種別:見積書 │ │ 作成日:2026/03/08 │ └─────────────────────────────────────┘ ``` **要件**: - 🖼️ LOGO: 右上隅に配置(100 x 50px) - 🏢 会社情報:左揃え、フォント 12pt, 灰色系 - 📋 帳票種別と作成日:右揃え、太字で強調 ### 📦 商品明細エリア(標準化) | カラム | 幅 | 内容 | 例 | | --- | --- | --- | --- | | **No** | 40px | シーケンス番号 | EST-260301-0001 | | **得意先名** | 150px | クライアント名称 | テスト株式会社 Alpha | | **商品コード** | 80px | JAN / コード | PRD001 | | **商品名** | 200px | 商品詳細 | テスト商品 A | | **単価(¥)** | 60px | ユニットプライス | ¥3,500 | | **数量** | 50px | Units | 1 | | **小計** | 80px | 金額合計 | ¥3,500 | **デザインガイド**: - 奇数行:白色背景 - 偶数行:薄いグレー (#f5f5f5) のアルナテレーティング - フォントサイズ:10pt(明細)/ 11pt(ヘッダー) ### 💰 合計金額エリア ``` ┌─────────────────────────────────────┐ │ 合 計 │ │ ────────────────────────────────── │ │ ¥3,500 │ ← タイトル(左揃え) │ ¥3,850 (税込) │ ← 合計金額(太字/オレンジ色) │ │ │ │ │ 📝 備考 │ ← フッターの付帯情報 │ ・納期:即日 │ │ ・決済条件:前金 │ └─────────────────────────────────────┘ ``` ### 🖨️ フッターエリア(統一) ``` ┌─────────────────────────────────────┐ │ 請求書番号:EST-260301-0001 │ ← 左上(灰色) │ │ │ QR コード: │ ← QR(右上隅に配置) │ 発行日:2026/03/08 │ │ [QR パターンのエリア] │ │ │ │ ────────────────────────────────── │ │ © ○○株式会社 全著作権所有 │ ← 会社ロゴ + 免責事項(グレー) │ ────────────────────────────────── │ │ 📞 03-1234-5678 | 🌐 www.example.co.jp│ └─────────────────────────────────────┘ ``` --- ## 3. PDF 帳票の出力フロー ### 🔧 flutter_pdf_generator の基本構造 ```dart import 'package:flutter_pdfgenerator/flutter_pdfgenerator.dart'; import 'package:pdf/pdf.dart'; import 'package:pdf/widgets.dart' as pw; Future generateEstimatePdf() async { // PDF ドキュメントの作成 final doc = pw.Document(); doc.addPage( pw.MultiPage( pageFormat: PdfPageSize.a5, // A5 サイズ設定 build: (pw.Context context) => [ // ヘッダーエリア _buildHeader(context), // 商品明細エリア _buildItemsTable(context), // 合計金額エリア _buildFooter(context), ], ), ); // PDF ファイルの保存 await doc.save(path: 'estimates/EST-260301-0001.pdf'); } ``` ### 📋 パッケージ依存関係 ```yaml # pubspec.yaml dependencies: flutter_pdf_generator: ^3.0.0 pdf: ^3.10.8 printing: ^5.9.0 ``` **注**: `flutter_pdf_generator` はレンダリングエンジン最適化済みなので、パフォーマンス優先に選定。 --- ## 4. テンプレート拡張仕様 ### 🔁 レイアウトの再利用可能性 | ファイル | 目的 | 共有リソース | | --- | --- | --- | | `pdf_template/estimate_template.dart` | 見積書用テンプレート | ヘッダー / フッター | | `pdf_template/sales_template.dart` | 伝票用テンプレート | ヘッダー(統一)/ フッター(簡易) | | `pdf_template/invoice_template.dart` | 請求書用テンプレート | QR コード付与エリア | **設計原則**: - ✅ ヘッダー / フッターを共有クラスで抽象化 - ✅ コンテンツ領域を動的に差し替え可能 - ✅ QR コードは右揃え(Google Drive 連携用) --- ## 5. マイルストーンチェックポイント | フェーズ | 完了条件 | 担当チーム | 期限 | | --- | --- | --- | --- | | **T1: テンプレート設計** | PDF ファイル出力テストパス | Sales チーム | 3/12(3 営業日) | | **T2: レイアウト実装** | flutter_pdf_generator インテグレーション完了 | UI/UX チーム | 3/16(7 営業日) | | **T3: Google Drive 連携** | QR コードによるファイル保存・開示機能動作確認 | Cloud チーム | 3/20(11 営業日) | **依存関係**: ```mermaid graph LR A[見積入力画面完了] --> B[PDF テンプレート設計] B --> C[flutter_pdf_generator インテグレーション] C --> D[売上伝票・請求書のテンプレート展開] ``` --- ## 6. テストケース定義 | # | テストシナリオ | 期待結果 | 検証タイミング | | --- | --- | --- | --- | | T-01 | 見積書 PDF 出力テスト(単品) | ファイル生成・A5 印刷動作確認 | 3/12 | | T-02 | 商品明細の文字切替確認 | 行間が正常に折り返されている | 3/12 | | T-03 | フッター QR コード有効化 | Google Drive で開示可能 | 3/18 | | T-04 | 売上伝票テンプレート展開 | 見積書から派生し、伝票用レイアウト動作 | 3/16 | **注**: テストは `test/widget_test.dart` のフローに従う。 --- ## 📋 ドキュメント管理履歴 | 日付 | 更新者 | 変更内容 | | --- | --- | --- | | **2026/03/08** | AI / 開発者 | 見積書テンプレート定義・拡張仕様明記 | **最終更新**: 2026/03/08 **バージョン**: 1.0 (PDF Template Init) --- ## 📚 関連ドキュメント - [requirements.md](file:///home/user/dev/h-1.flutter.4/docs/requirements.md): 機能一覧・要件定義 - [short_term_plan.md](file:///home/user/dev/h-1.flutter.4/docs/short_term_plan.md): Sprint 計画・マイルストーン管理 - [engineering_management.md](file:///home/user/dev/h-1.flutter.4/docs/engineering_management.md): 工程管理フレームワーク活用ガイド