固定見出しから請求書プレビューを組み立てる
Markdown請求書ジェネレーターは,一般的なMarkdown文書を自由にデザインするツールではなく,決められた見出し名を区画として読み取る請求書用の簡易パーサーです.#で始まる行を題名として扱い,##宛先,##発行元,##請求情報,##振込先,##品目の下にある内容を,右側のA4風プレビューの対応位置へ表示します.
宛先,発行元,振込先は空でない行を順番に表示します.請求情報は各行の先頭にあるハイフンを取り除いて一覧化するため,「請求番号:」「発行日:」「お支払期限:」など必要な項目名を利用者が記述します.項目名を意味解析する機能はなく,日付形式や請求番号の重複も検証しません.テンプレートを残し,各区画の本文だけを置き換えると構造を保ちやすくなります.
これらすべての区画が揃っていることを強制する検査はありません.空の区画はプレビューでも空になります.発行に必要な情報は取引や制度で異なるため,「エラーが表示されない」ことと「必要事項が揃っている」ことを分けて確認してください.
品名・単価・数量・税率の4列表
##品目の区画は,パイプ記号で区切るMarkdown表として読み取ります.見出し行の次に「| --- | --- | --- | --- |」のような区切り行を置き,以降を品名,単価,数量,税率の4列で記述します.品名または項目を含む先頭セルは見出し行として扱い,データ行には空でない品名が必要です.
単価と数量は,前後の空白,カンマ,半角・全角の円記号を除いた後,0以上の有限な数値として解釈します.負数,指数表記,数値以外の文字,計算できない大きさはエラーです.数量には小数も入力できますが,プレビュー上の表示や取引単位として適切かは利用者が確認します.税率は8または10だけを受け付け,%記号と空白を除いて判定します.非課税,免税,0%,任意税率には対応しません.
区切り行がない,品目行がパイプで始まらない,4列でない,数値が不正,税率が8・10以外といった場合は行番号付きのエラーを表示します.エラー中は印刷ボタンを無効にし,問題のある行を黙って合計から除外したまま出力しないようにしています.
税率別小計と各1回の切り捨て
各明細の金額は単価×数量です.8%の品目だけを合計した小計と,10%の品目だけを合計した小計を別々に作ります.8%税額は8%対象小計×0.08,10%税額は10%対象小計×0.10として計算し,それぞれへJavaScriptのMath.floorを1回適用して小数点以下を切り捨てます.合計税額は二つの税額の和,請求総額は税抜小計と合計税額の和です.
例えば8%対象小計が1,011円なら税額候補80.88円を80円へ,10%対象小計が2,019円なら201.9円を201円へ切り捨て,税額合計281円として扱います.明細行ごとに税額を丸めてから足す方式ではないため,別の端数処理を採用する請求書とは結果が異なる場合があります.
この計算規則はツールの表示仕様です.取引先との合意,請求単位,値引き,返品,外貨,源泉徴収,軽減税率対象品目の判定,会計ソフトの端数設定を自動的に反映しません.正式な金額は契約内容と利用中の会計・税務ルールへ照合してください.
入力エラーとプレビュー確認の手順
編集内容は入力のたびに解析し,正常な行からプレビューを更新します.エラー一覧には行番号と理由を表示するため,最初に品目表の区切り行と4列構成を確認し,次に単価・数量・税率を直すと原因を切り分けやすくなります.巨大な数値で合計が有限値を超える場合も停止します.
形式検査は品目表の計算可能性を中心としたものです.宛先の郵便番号,発行日,支払期限,銀行口座,登録番号,電話番号の書式や実在性は確認しません.請求情報も単なる表示行として扱うため,期限が発行日より前でも警告しません.印刷前にはプレビューを読み,誤字,金額,日付,振込先,名義を原資料と照合してください.
初期テンプレートへ戻す操作は,現在のMarkdown全体を例文で置き換えます.自動保存や編集履歴はないため,作成途中でリセットする前に必要な内容を別途保存してください.テンプレート内の会社名,住所,口座,登録番号,請求番号は入力例であり,実在性や利用可能性を示すものではありません.
window.printによる紙印刷とPDF保存
印刷ボタンはwindow.printを呼び出し,ブラウザ標準の印刷画面を開きます.ツールがPDFバイナリを直接作成してダウンロードする機能ではありません.ブラウザまたはOSが印刷先として「PDFに保存」を提供している場合は,利用者がその出力先を選べます.物理プリンターを選ぶこともできます.
印刷用CSSは操作画面を隠し,請求書部分を用紙向けに整えますが,長い住所,多数の品目,ブラウザのフォント,余白,倍率により,1枚のA4へ収まらない場合があります.改ページ位置や複数ページの見出し繰り返しを細かく制御する機能はありません.印刷画面で用紙サイズ,方向,余白,倍率,背景印刷を確認してください.
PDFとして保存した場合も,保存後のファイルを開き,文字切れ,行の重なり,品目の欠落,合計額を確認します.ブラウザごとの印刷結果や,PDFの長期保存要件,電子署名,改ざん防止をこのツールが保証するものではありません.
適格請求書・保存制度との境界
請求書が適格請求書として扱われるための必要記載事項,登録番号の有効性,税率ごとの区分,取引年月日,交付先,保存方法などは,最終的な文書と取引状況に基づいて確認する必要があります.本ツールは入力した登録番号を外部データベースへ照会せず,必要項目の欠落や法令への適合を判定しません.
また,ブラウザ印刷でPDFを作れたことは,電子帳簿保存法その他の保存要件を満たすことを意味しません.検索性,訂正削除の記録,保存期間,真実性・可視性の確保など,事業者の運用で必要になる条件は別途整備します.制度や様式は変更される可能性があるため,発行時点の公的情報や専門家の案内を確認してください.
軽減税率8%を選べることも,入力した品目が軽減税率の対象であると判定した結果ではありません.品目の税区分は利用者が入力します.同じ名称でも取引条件により扱いが変わる可能性があるため,商品・役務の区分を原資料へ照合してください.非課税や不課税の項目は本ツールの税率列では表現できず,別の請求書作成方法が必要です.
値引きや返品を負数明細で表す方式にも対応していません.単価と数量は0以上に限定されるため,調整額を含む取引では,合意した記載方法に従って別途計算・作成してください.また,小数数量を入力できても,通貨表示は円単位へ整形されます.小数単価・数量による端数があるときは,各明細金額と合計の表示が取引ルールに合うかを確認します.
発行後に内容を変更した場合の版管理,請求書番号の採番,重複発行の防止,送付,入金消込,領収書発行は行いません.画面を閉じた後に原稿を復元する保存機能もないため,必要であればMarkdown原稿と出力PDFを事業者側の管理方法で保管します.
振込先や住所には任意の行を表示できますが,機密情報の取扱いは利用環境と組織のルールに従ってください.本コンポーネントが外部保存機能を持たないことだけから,ブラウザ拡張やページ配信を含む通信全体がないと断定するものではありません.共有端末では入力を残したままにしないなど,運用上の注意も必要です.
本ツールは,定型Markdownから見た目を整え,8%・10%の税率別計算を確認する下書き支援です.エラーがないことだけで発行せず,元の受注内容,会計記録,取引先情報,税額計算,制度上の記載事項を人が最終確認してから印刷・保存してください.