make receipt online free pdf
在瀏覽器中免費線上製作 PDF 收據

瀏覽器式「免費 PDF 收據」真正的含意

在瀏覽器中變成 PDF 的收據,從一般的表單輸入開始 —— 商家名稱、日期、收據編號,以及逐項列出的明細項目 —— 頁面使用整數最小貨幣單位算術將其轉換成可列印的版面,然後交給瀏覽器的列印對話框,或儲存為可稍後重新開啟的獨立 HTML 檔。使用 Receipt Maker,不會上傳任何文件;每個欄位、總計和找零金額都在當前分頁本地端渲染。免費 PDF 的流程距離完成的預覽只要兩次點擊:開啟瀏覽器的列印對話框並選擇「另存為 PDF」作為目的地,或使用「下載 HTML」來保留一個任何瀏覽器皆可開啟並稍後列印的可攜檔案。因為整個工作流程都在同一個分頁內進行,所以您可以掌控商家明細、明細項目、價格、備註和付款金額,而頁面則處理小型試算表常會出錯的算術,例如經典的 0.10 + 0.20 = 0.30 情境。

當搜尋要求「線上免費製作 PDF 收據」工作流程時,讀者通常會想要一個看起來像真正付款證明、可保留在裝置上的可列印檔案,因為收據明細不會被上傳。瀏覽器式收據建構器將列印對話框視為 PDF 工廠,即可同時滿足這三點。頁面本身不會產生 .pdf 檔 —— 相反地,它產生一個乾淨、經過驗證的 HTML 預覽,讓您使用作業系統的列印功能表(macOS 和 Windows 上的「另存為 PDF」,或 Linux 中的「列印至 PDF」)將其轉換為 PDF。「下載 HTML」按鈕儲存的也是這個 HTML 預覽,因此相同的來源文件可以封存於磁碟、作為附件以電子郵件寄送,或稍後在任何瀏覽器中重新開啟並重新列印,無需重新輸入資料。

Receipt Maker 在 PDF 上擷取的欄位

可列印的版面是由一組小型的已驗證欄位所建立。以下是每個欄位的實際意義,以及頁面在幕後處理限制的方式。

欄位您輸入的內容工具套用的規則
商家名稱接收款項的商家或個人自由文字;顯示在收據頂端
付款日期款項實際交付的日期自由文字,通常為日曆日期
收據編號您想要列印的任何唯一識別碼自由文字;可用於與日記帳對帳
顯示貨幣頁面上顯示的貨幣代碼或符號僅用於顯示;不進行外匯換算
明細項目描述、數量(最多 3 位小數)、單價(最多 2 位小數)最多 100 列;空白、負數、非有限值或格式錯誤的值會被拒絕
折扣從小計中扣減的固定金額不得超過小計;於稅額計算前扣除
稅率套用於折扣後小計的百分比計算後四捨五入至最近的最小貨幣單位
小費於稅額計算後加上的固定金額於稅額後加上;非按百分比計算
實付金額客戶實際交付的金額若此金額低於計算總額,則停止產生

有一個值得注意的細節:顯示的貨幣標籤不會改變算術。如果您選擇 USD,頁面會以兩位小數格式化數值;而零小數貨幣則會以不帶小數的方式顯示。在內部,每個貨幣輸入在任何加法或減法之前都會先轉換為整數的最小貨幣單位計數,因此 PDF 上列印的總額就是精確的整數結果,而不是四捨五入後的浮點數。對於以兩位小數顯示的貨幣,一個主要單位在任何加法或減法之前會轉換為一百個最小貨幣單位,這正是防止二進位浮點數尾端出現在可列印頁面上的精確機制。

如何逐步製作收據

  1. 在任何現代瀏覽器中開啟 Receipt Maker。頁面載入時欄位為空,沒有預設的收據編號,因此您可以掌控出現在可列印預覽上的內容。
  2. 輸入商家名稱、付款日期、收據編號,並選擇顯示貨幣。這四個標題欄位會出現在 PDF 的頂端。
  3. 針對每個已付款的品項或服務,輸入簡短描述、數量(最多三位小數,例如 1.5 小時的工時),以及單價(最多兩位小數)。該工具會拒絕空白列、負數、非有限值,以及小數位數過多的輸入,而不是默默地將其替換為零。
  4. 輸入一個小於或等於已驗證明細項目小計的固定折扣金額。
  5. 輸入適用於您交易的百分比稅率。頁面會將其套用至折扣後的小計,然後四捨五入至最近的最小貨幣單位。
  6. 輸入在稅額之上加上的任何固定小費。小費是在稅額之後加上,而不是加在含稅的基礎上。
  7. 輸入客戶實際交付的金額。如果此金額低於計算總額,頁面會拒絕產生收據 —— 此防護機制可防止將未付款或部分付款的要求誤標為已付款的收據。
  8. 點選產生按鈕,仔細閱讀預覽,並驗證小計、折扣後小計、稅額、小費、總計和找零金額。更動任何欄位會清除上一次的結果,如此便不會將舊的收據誤認為是依據新輸入所產生的輸出。
  9. 使用頁面的「列印」按鈕來開啟瀏覽器的列印對話框。從該處,選擇「另存為 PDF」作為目的地,以寫入免費的 PDF 檔。或者,點選「下載 HTML」以儲存一個可在任何瀏覽器中稍後重新開啟並再次列印的獨立收據檔案。

若某個步驟失敗 —— 例如,折扣大於小計、數量有四位小數、單價有三位小數,或實付金額不足 —— 頁面會回報問題,而不是猜測。修正有誤的欄位後再次點選產生。行項目金額只有在已驗證數量乘以整數單價之後,才會四捨五入至最近的最小貨幣單位,因此像 1.5 小時乘以 $20.00 這類分數數量會產生精確的 $30.00 行項目,而非一個小數位數冗長的近似值。

從瀏覽器頁面到 PDF:兩種輸出路徑

預覽看起來正確後,您有兩種簡潔的方式可將 PDF 檔案存入磁碟。第一條路徑是透過瀏覽器內建的列印堆疊。點選「列印收據」會開啟標準的列印對話框(記載於 MDN Window.print 參考文件);在 macOS、Windows 和大多數 Linux 桌面環境中,該對話框會將「另存為 PDF」或「Microsoft Print to PDF」列為虛擬印表機,藉此寫入真正的 PDF 檔,而無需上傳任何內容。第二條路徑是「下載 HTML」按鈕。該動作會建立一個 Blob,內含預覽中可見的相同已驗證數值,包括合規免責聲明,並將其儲存為裝置上的獨立 .html 檔。用於寫入檔案的 Blob URL 機制記載於 MDN Blob 參考文件。由於該檔案是純 HTML,您可以將其以電子郵件寄出、加以封存,或稍後重新開啟並使用「列印 → 另存為 PDF」來產生最終的 PDF,而無需重新輸入資料。

HTML 下載在一個特殊情況下很重要:若您在列印前關閉分頁,預覽就會消失。儲存 HTML 檔可保留精確的渲染文件 —— 相同的總計、相同的找零金額、相同的免責聲明 —— 因此稽核軌跡不會遺失。若想進一步逐步了解相同的整數算術邏輯並搭配額外演算範例,請參閱如何使用精確總計製作收據。

為何可列印收據上的數字是精確的

試算表和許多線上計算機使用二進位浮點數運算來建構總計,這會產生像 0.10 + 0.20 = 0.30000000000000004 這樣的明顯錯誤。Receipt Maker 透過在任何運算之前,將每個兩位小數的貨幣輸入轉換為整數的最小貨幣單位計數,來避免這類錯誤。$10.00 的單價會變成 1000,$5.50 的單價會變成 550,而 0.08 的稅率會套用至整數的折扣後小計,例如 4050 個最小貨幣單位,產生 324 個最小貨幣單位的稅額 —— 這會以不帶浮點數尾端的方式格式化回 $3.24。

相同的規則也支配著運算順序。頁面首先將每個已驗證的行項目金額相加以形成小計,接著扣除固定折扣(限制為零 —— 不得超過小計),將輸入的稅率百分比套用至折扣後的小計並四捨五入至最近的最小貨幣單位,然後加上固定小費。因此最終總額等於折扣後小計加上稅額再加上小費。找零金額則是實付金額減去總額。以下是使用單一演算範例的順序,所有數值皆以頁面實際相加的整數最小貨幣單位顯示:

  • 第 1 列:2 × $10.00 = $20.00(對小計的貢獻:2000 個最小貨幣單位)
  • 第 2 列:3 × $5.50 = $16.50(1650 個最小貨幣單位)
  • 第 3 列:4 × $2.25 = $9.00(900 個最小貨幣單位)
  • 小計 = 2000 + 1650 + 900 = 4550 個最小貨幣單位 = $45.50
  • 固定折扣 $5.00 → 折扣後小計 = 4550 − 500 = 4050 個最小貨幣單位 = $40.50
  • 4050 的 8% 稅額 → 324 個最小貨幣單位,四捨五入至最近的最小貨幣單位 = $3.24
  • 固定小費 $4.00 → 400 個最小貨幣單位
  • 總計 = 4050 + 324 + 400 = 4774 個最小貨幣單位 = $47.74
  • 實付 $50.00(5000 個最小貨幣單位)減去總計 4774 = 226 個最小貨幣單位的找零 = $2.26

所有這些數值在進入預覽的那一刻都是整數運算,這就是為何列印的 PDF 和下載的 HTML 檔案總是顯示相同的總計。數量接受最多三位小數,單價接受最多兩位,因此單一列仍可表示像 1.5 小時乘以 $20.00 這樣的分數單位;但乘法運算僅在計算出整數乘積後,才會四捨五入至最近的最小貨幣單位,這使每個行項目金額保持精確。

Limits, Guardrails, and When You Need Something Else

The tool has explicit limits that change whether it can complete the task. A single receipt is capped at 100 line items, totals outside the supported amount range are reported instead of silently clipped, and the page refuses to generate anything when the tendered amount is below the calculated total. Generation also stops on blank, negative, non-finite, or malformed numbers rather than substituting zero. If any of those guards trigger, the printed file is never produced, which is the desired behavior for a tool that is allowed to produce only paid receipts.

A few responsibilities are deliberately not built into the tool. There are no jurisdiction-specific tax tables, product exemptions, rounding mandates, sequential numbering rules, customer accounts, partial-payment allocation, refund handling, or fiscal-receipt signatures. The downloaded HTML file and the printed PDF can both be edited in a text editor, so the page includes a compliance disclaimer and recommends keeping the authoritative payment processor record, cash register journal, bank entry, or signed agreement alongside any printable copy. If you need to request payment, set a due date, or show an outstanding balance, an invoice generator is the appropriate destination; if you need to record a partial payment with an audit trail, bookkeeping software is the right choice. For the everyday case of one completed payment that you want on paper or as a free PDF, Receipt Maker covers the workflow end to end.