リクエスト詳細
✨ 既存アプリの改善
対応完了
対象アプリ: PrintReady - 印刷物レイアウトチェッカー
チェック結果のPNG画像エクスポート機能の追加
## 1. 目的
入稿前の確認作業をチームや印刷会社と共有しやすくするため、現在キャンバスに表示されているガイドライン付きプレビュー画像を1クリックでPNGとしてダウンロードできる機能を追加する。スクリーンショットでは再現しにくいオーバーレイ情報(塗り足し・安全圏・中央線等)を正確に含めた画像として保存できる点が差別化ポイント。
## 2. 具体的な仕様
### UI
- 既存の「印刷前チェックリストを生成」ボタンの隣(または直下)に「ガイド付き画像をダウンロード」ボタンを追加する。
- ボタンデザインは既存ボタンと統一したスタイル(色・フォント・サイズ)を踏襲する。
- アップロード画像が未選択の場合はボタンをdisabled状態にし、ホバー時に「先に画像をアップロードしてください」のtooltipを表示する。
### 処理フロー
1. ユーザーがボタンをクリックすると、既存のCanvas要素(ガイドライン描画済み)をそのまま`canvas.toDataURL('image/png')`で取得する。
2. 取得したData URLを`<a>`タグの`href`にセットし、`download`属性にファイル名(例: `printready_A4_check.png`、用紙サイズ名を動的に含める)を指定してプログラム的にクリックしてダウンロードを発火させる。
3. ダウンロード完了後、一時生成した`<a>`要素はDOMから削除する。
4. 既存Canvasへの描画処理は一切変更しない(読み取るだけ)。
### ファイル名規則
`printready_{用紙サイズ名}_{YYYYMMDD}.png`(例: `printready_A4_20250601.png`)。日付はクライアントのローカル日時から`Date`オブジェクトで取得する。
### オーバーレイ表示状態の反映
- 既存のガイドライン表示チェックボックス(塗り足し・安全圏・中央線・三分割)の現在の表示状態がそのままエクスポート画像に反映される仕様とする(特別な処理不要・Canvasの見た目がそのまま出力される)。
### スマホ対応
- モバイルブラウザではa要素のdownload属性が機能しない場合があるため、ダウンロードが発火しない環境では`window.open(dataURL, '_blank')`にフォールバックし、「新しいタブに画像を表示しました。長押しして保存してください。」とalertまたはインラインメッセージで案内する。
## 3. 既存機能との整合
- サーバー送信なし・DBなしの設計を完全に維持する(処理はすべてブラウザ内で完結)。
- 既存のCanvas描画ロジック・診断ロジック・チェックリスト生成機能には一切手を加えない。
- 追加するのはボタン要素1つとJavaScript関数1つのみで、既存コードへの影響を最小限に抑える。
入稿前の確認作業をチームや印刷会社と共有しやすくするため、現在キャンバスに表示されているガイドライン付きプレビュー画像を1クリックでPNGとしてダウンロードできる機能を追加する。スクリーンショットでは再現しにくいオーバーレイ情報(塗り足し・安全圏・中央線等)を正確に含めた画像として保存できる点が差別化ポイント。
## 2. 具体的な仕様
### UI
- 既存の「印刷前チェックリストを生成」ボタンの隣(または直下)に「ガイド付き画像をダウンロード」ボタンを追加する。
- ボタンデザインは既存ボタンと統一したスタイル(色・フォント・サイズ)を踏襲する。
- アップロード画像が未選択の場合はボタンをdisabled状態にし、ホバー時に「先に画像をアップロードしてください」のtooltipを表示する。
### 処理フロー
1. ユーザーがボタンをクリックすると、既存のCanvas要素(ガイドライン描画済み)をそのまま`canvas.toDataURL('image/png')`で取得する。
2. 取得したData URLを`<a>`タグの`href`にセットし、`download`属性にファイル名(例: `printready_A4_check.png`、用紙サイズ名を動的に含める)を指定してプログラム的にクリックしてダウンロードを発火させる。
3. ダウンロード完了後、一時生成した`<a>`要素はDOMから削除する。
4. 既存Canvasへの描画処理は一切変更しない(読み取るだけ)。
### ファイル名規則
`printready_{用紙サイズ名}_{YYYYMMDD}.png`(例: `printready_A4_20250601.png`)。日付はクライアントのローカル日時から`Date`オブジェクトで取得する。
### オーバーレイ表示状態の反映
- 既存のガイドライン表示チェックボックス(塗り足し・安全圏・中央線・三分割)の現在の表示状態がそのままエクスポート画像に反映される仕様とする(特別な処理不要・Canvasの見た目がそのまま出力される)。
### スマホ対応
- モバイルブラウザではa要素のdownload属性が機能しない場合があるため、ダウンロードが発火しない環境では`window.open(dataURL, '_blank')`にフォールバックし、「新しいタブに画像を表示しました。長押しして保存してください。」とalertまたはインラインメッセージで案内する。
## 3. 既存機能との整合
- サーバー送信なし・DBなしの設計を完全に維持する(処理はすべてブラウザ内で完結)。
- 既存のCanvas描画ロジック・診断ロジック・チェックリスト生成機能には一切手を加えない。
- 追加するのはボタン要素1つとJavaScript関数1つのみで、既存コードへの影響を最小限に抑える。
💬 返信 (3)
🛠 開発を開始しました (機能追加 (printready))
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
ご要望ありがとうございます。AI 開発ワーカーが実装を開始します。
通常 5〜30 分で Pull Request を作成し、レビュー後にリリースされます。
📝 開発が完了しました
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
ご要望いただいた内容の実装が完了し、最終チェック段階に入りました。
レビュー (自動) → リリース、の流れで進みます。
もう少々お待ちください。
✅ リリース完了のお知らせ
ご要望いただいた「PrintReady - 印刷物レイアウトチェッカー」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=printready
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/printready/
ご利用ありがとうございます!
ご要望いただいた「PrintReady - 印刷物レイアウトチェッカー」を実装し、リリースいたしました。
【ご利用方法】
ダッシュボード: https://www.aiapps.jp/?action=dashboard
アプリ詳細: https://www.aiapps.jp/apps/show.php?slug=printready
デモ環境は 1 時間以内に自動構築されます:
https://www.aiapps.jp/demo/printready/
ご利用ありがとうございます!
Echo
Iris