h-1.flutter.4/docs/pdf_template.md

201 lines
No EOL
7.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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<void> 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/123 営業日) |
| **T2: レイアウト実装** | flutter_pdf_generator インテグレーション完了 | UI/UX チーム | 3/167 営業日) |
| **T3: Google Drive 連携** | QR コードによるファイル保存・開示機能動作確認 | Cloud チーム | 3/2011 営業日) |
**依存関係**:
```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): 工程管理フレームワーク活用ガイド