コンテンツにスキップ

PDF の自動生成と再生成

承認対象の書面を承認すると、その時点での確定版 PDF が自動で生成され、テナントごとに分離された R2 ストレージに保存されます。ダウンロード時はこの保存済み PDF が配信されます。

なぜサーバー側で生成するのか

Section titled “なぜサーバー側で生成するのか”

利用者のブラウザの印刷機能だけに依存すると、Chrome / Safari / Edge で余白・改ページ・フォントが微妙に異なり、同じ書面でも見た目が変わってしまいます。承認時点の固定 PDF を保存することで、どの環境からダウンロードしても同一ファイルが配られます。

対象書面: 重要事項説明書・売買契約書・査定書・媒介報告書。

  • 承認ボタンを押した時点で生成がバックグラウンドで走り、数秒〜十秒程度で完了します。
  • 「PDF」ボタンを押すと R2 から保存済みファイルがダウンロードされます。

生成に失敗したとき(管理者向け)

Section titled “生成に失敗したとき(管理者向け)”

何らかの理由で生成に失敗すると、書面詳細画面の右パネルに「PDF の再生成」カードが表示されます。

  • 失敗の理由:「承認時の PDF 生成に失敗しています」と表示されます。原因は Browser Rendering の一時障害が大半です。
  • 再生成ボタン:押すとその場で再試行します。成功すると次回からは保存済み PDF が配信されます。
  • 監査ログに generated.regenerate_pdf として記録されます。
  • 保存先は テナント単位で分離 された R2 キー(<tenantId>/pdfs/<docId>.pdf)。他社の書面へクロステナントアクセスはできません。
  • 配信時は Worker で承認状態とテナント所属を毎回再確認してから R2 ストリームを返します。
  • 日次の orphan sweeper は承認 PDF を「既知」として扱うため、誤って削除されることはありません。
  • 同じ書面を 複数回再生成しても、R2 上の同じキーを上書きします(履歴は残りません)。承認後に payload を編集することはできないため、毎回同じ内容が生成されます。
  • 承認前の書面(下書き状態)には PDF はありません。ブラウザの印刷機能で出力してください。
  • マイソクは例外として、編集中でも PDF プレビューとダウンロードを利用できます。完了後も同じく、保存済みの Grid レイアウトからオンデマンドで出力します。