本文へ移動
KAIHATSU

PDF帳票の開発を頼む前に、印刷と再発行の条件を決める

PDF帳票の開発要件を、複数ページ、長文、金額丸め、版、再発行、権限の条件別検収表に整理。見積依頼の前提、納品時の確認方法、合意後に追加範囲とする境界を明確にします。

執筆・確認株式会社adding 編集部

order-guide / contract

PDF帳票の開発要件は、見本のレイアウトだけでは決まりません。見積依頼の前に必要なのは、データが複数ページへ続くとき、長文が枠に収まらないとき、金額を丸めるとき、発行後に訂正するときの期待結果です。さらに、その操作を誰に許すかまで決めます。

これらを「きれいに印刷できること」の一文にまとめず、条件・操作・期待結果の組として検収表へ落としてください。決まっていない項目は無理に確定せず、未決と明記します。そうすれば、納品時に何を確認するか、合意後の変更をどこから追加範囲とするかを同じ表で判断できます。

難しいのは、実データでしか現れない崩れと、発行後の運用を見積もり前に想像することです。以下の表は、その抜けを発注者側で洗い出すためのたたき台です。

PDF帳票の開発要件は「一枚の見本」から分解する

ページ媒体には、用紙だけでなく別々に扱う要素があります。W3Cのページ媒体仕様は、ページの大きさ・向き・余白・罫線・パディング、ヘッダー/フッター、ページ番号をそれぞれ制御対象として挙げています。また、用紙の対象サイズと向きは、固定寸法または用紙名と縦・横の組み合わせで指定するものとされています(2026年9月21日確認、W3C「CSS Paged Media Module Level 3」)。

つまり、見本どおりの一ページが出れば完成、とは限りません。運用上の提案として、まず次の項目を分離して見積依頼書へ記載します。

  • 用紙サイズと縦向き・横向き
  • 上下左右の余白
  • 各ページに置くヘッダーとフッター
  • ページ番号の表示位置と形式
  • 明細が次ページへ続くときの見出し
  • 表の途中で改ページするときの扱い
  • 長文を折り返す、切る、別欄へ逃がす条件

この一覧は、異なるデータ量でも業務に使える出力かを判定する単位です。デザイン指定とは分け、罫線の色や文字の位置を詰める前に、ページが増えたときに情報の対応関係を失わないかを決めます。

印刷条件の検収表

次の内容は運用上の提案です。「入力・前提」は発注者が用意できるデータの特徴に置き換え、「期待結果」は実装前に開発側と合意してください。

条件操作・確認期待結果として決めること見積時の状態
通常の内容が一ページに収まるPDFを作成し、想定する用紙で確認する用紙サイズ、向き、余白、ヘッダー/フッター、ページ番号決定/未決
明細が複数ページになるページ末尾をまたぐ明細を含めて出力する見出しの再表示、ページ番号、前後ページでの明細のつながり決定/未決
一つの明細に長文が入る長文を含めて出力する折り返し、行の高さ、欄からあふれる場合の扱い決定/未決
表の途中で改ページする改ページの前後を確認する行を分割するか、行単位で次ページへ送るか決定/未決
ヘッダー/フッターと本文が近接する各ページの上下端を確認する本文との重なりを許さず、必要な情報を維持する決定/未決

複数ページと長文は別条件です。明細数は少なくても、一つの備考が長ければ行の高さが変わります。両方を組み合わせたデータも受け入れ確認に含めるかを決めておくと、「単独条件では通るが、同時に起きると崩れる」という見落としを減らせます。

金額は表示桁だけでなく、丸める場所を決める

「小数を四捨五入する」だけでは、期待する合計を一意にできません。丸める桁と方式に加え、明細、小計、合計のどこで丸めるかを分ける必要があります。

OracleのBigDecimal仕様では、丸め動作を利用者が制御でき、精度と丸めモードを指定できます。演算は正確な中間結果を求めた後、必要に応じて選択した丸めモードで指定桁数へ丸めるものと説明されています(2026年9月21日確認、Oracle「BigDecimal (Java SE 25 & JDK 25)」)。この説明から、丸め方は要件として明示できると分かります。特定の実装方法を指定する根拠にはしていません。

運用上の提案として、金額の検収表は次のように分けます。

条件合意する内容検収で照合するもの
丸めが必要な金額丸める桁と丸め方式境界値を含む入力と期待表示
明細ごとに端数が出る明細単位で丸めるか各明細の表示と計算結果
小計を表示する小計時に丸めるか明細から得る小計と表示
合計を表示する合計時に丸めるか小計との関係、最終表示
同じ金額を画面とPDFに出す共通の結果を使うか、表示規則を分けるか画面表示とPDF表示の対応

境界値に何を使うか、期待結果を誰が確定するかも依頼書へ残します。発注者が業務上の正解を示し、開発側が再現できる条件にしてください。「適切な丸め」という開発会社任せの表現は、期待結果を確定できません。対象は一般の作業報告書や見積書における表示の一貫性であり、税務や法定帳票としての適否は扱いません。

版と再発行は、上書き保存の話ではない

訂正後のPDFを作れるだけでは、再発行の要件は終わりません。初回発行済みの内容と訂正版をどう識別するか、過去の版を誰が見られるか、再発行した事実を何で確認するかを決めます。

運用上の提案として、帳票自体の条件と再発行台帳の条件を分けます。台帳に残す候補は、版識別子、訂正理由、発行者、発行日時です。各項目を残す要否は業務に応じて選び、見積条件にしてください。

状態・操作帳票で決めること台帳で決めること検収の観点
初回発行初版を識別する表示の要否発行者・発行日時を残す要否初回発行として区別できる
内容の訂正元の版との区別、訂正表示の要否訂正理由と版識別子を残す要否元の版と訂正版を取り違えない
再発行再発行表示の要否再発行者・再発行日時を残す要否再発行の事実を確認できる
過去版の参照過去版を表示・取得できるか参照対象の版を特定できるか現行版と過去版を区別できる

ここで「再ダウンロード」と「訂正版の作成」を同じ操作にしないことが重要です。保存済みの同一版をもう一度取得する場合と、内容を変えて新しい版を作る場合では、許可したい役割も確認したい記録も異なります。

再発行の権限は操作ごとに検収する

OWASPは権限設計において、利用者の種類、公開するリソース、そのリソースに対する読取・書込・更新などの操作を列挙し、組み合わせごとに許可する操作を決めるよう推奨しています。また、設計した権限が正しく強制されることをテストし、アクセスは既定で拒否し、すべてのリクエストで権限を検証するよう推奨しています(2026年9月21日確認、OWASP「Authorization Cheat Sheet」)。

この考え方をPDF帳票へ当てはめる運用上の提案が、役割と操作の検収表です。担当者・承認者・管理者という名称は例なので、実際の職務名に置き換えます。可否は発注者が決め、空欄を残さないようにします。

操作担当者承認者管理者拒否時に確認すること
初回発行可/不可可/不可可/不可許可のない役割では発行できない
発行済み帳票の閲覧可/不可可/不可可/不可対象外の帳票を閲覧できない
ダウンロード可/不可可/不可可/不可閲覧可でも取得不可とするか
訂正版の作成可/不可可/不可可/不可元データの更新権限との関係
同一版の再発行可/不可可/不可可/不可操作記録を残す要否
過去版の取得可/不可可/不可可/不可現行版以外へのアクセス可否

許可される操作だけでなく、許可されない役割で拒否されることも納品時に確認します。画面上のボタンを隠すかどうかだけで判定せず、対象の操作が実際に拒否されることを期待結果にします。

権限を含む要件全体の整理には、システム開発の要件定義チェックリスト|外注前に決める10項目も利用できます。帳票の検収表は、その中の出力、権限、受け入れ条件を具体化した資料として添付すると、依頼の前提を共有しやすくなります。

未決欄と変更欄で、追加範囲を判定する

見積依頼時にすべてを決め切れなくても構いません。ただし、空白は「開発側へ一任」なのか「後で発注者が決める」のか判別できません。運用上の提案として、各条件に決定・未決・対象外の状態を付け、未決なら決定者と決定時期を記載します。

さらに、印刷条件、丸め条件、版と再発行、操作権限のそれぞれに変更欄を設けます。合意した検収表に対し、何を、なぜ、いつ変更したかを残してください。見積時に未決だった項目や、合意後に変えた項目は、当初範囲へ当然に含めず、影響を確認して追加範囲かを判定します。見積書を比較するときの観点は、システム開発の見積もりの取り方と内訳|妥当性の判断基準も参考になります。

発注時に渡す資料は、完成した仕様書である必要はありません。帳票見本、条件別検収表、権限表、未決・変更欄が対応していれば、開発側は決定済みの範囲と確認が必要な範囲を分けられます。

納品時には、一ページの見栄えだけでなく、複数ページと長文が重なる条件、丸めの境界、元の版と訂正版の区別、許可されない役割での拒否まで表に沿って確認します。それが、PDF帳票の「印刷できた」を、業務で使えるかどうかの判断へ変える条件です。

費用、期間、契約、法務・税務上の扱いは条件により異なります。記事の確認日とリンク先の一次情報を確認し、個別判断は専門家へご相談ください。

システム開発・発注ガイドへ戻る