QR 碼可以容納大量的文字內容,但僅限於該符號的版本與容錯能力所允許的範圍內,這就是為什麼 批次 QR 碼產生器 將每一行的長度上限設為 2,000 個字元,並將整批的上限設為 20 筆不重複的項目,以確保在手機或筆電上編碼結果是可預期的。許多人以為把 PNG 尺寸從 128 像素放大到 512 像素就能增加符號可承載的資料量,但像素尺寸只會影響影像的顯示與列印縮放,實際可儲存的資料量是由編碼器所選定的 QR 版本所決定的。同樣的混淆也出現在容錯等級上:把等級從 M 調到 H 並不會讓每個符號都更好讀;它是用資料空間換取修復能力,實際上反而可能迫使模組網格變得更密集、更難以掃描。對於含有 UTM 參數的長網址清單、多行名片,或冗長的產品描述來說,實際要問的問題是:在套用容錯之後,每一行是否仍落在該程式庫的單一符號容量之內。批次 QR 碼產生器會把這些限制明確顯示出來,當內容超出容量時會明確地失敗,並產生你可以用實際要出貨的掃描器來掃描的個別 PNG 檔。

bulk qr code generator large text
用於大量文字內容的批次 QR 碼產生器

QR 碼如何處理大量文字內容

QR 符號將資料儲存在方形網格上的模組中,每一個版本升級都會讓邊長增加 4 個模組。版本 1 從 21x21 模組開始,版本 40 可達 177x177。較大的網格可儲存更多字元,但每增加一個模組,掃描器都必須使其保持完整才能還原出原始的位元串流。根據 DENSO WAVE 的說明,四個容錯等級在 L、M、Q、H 分別能修復大約 7%、15%、25% 與 30% 的碼字,但這些修復能力的提升是直接從資料預算中扣除的。在 Level H 設定下,同樣一組在 Level M 能放得下的長網址,可能會被迫跳到下一個 QR 版本,這會產生一個明顯更密集的符號,讓較舊或低解析度的相機難以讀取。

字元模式也存在相同的取捨:一個 200 個 ASCII 字元的網址與一個 200 個字元的 UTF-8 句子,雖然可讀的長度相同,但可能會消耗不同比例的資料預算,因為編碼器會根據哪種壓縮效果最好來選擇段落。對於長文字清單,經驗法則是預留一些空間——在 Level M 下剛好達到理論最大容量的某一行,若之後把整批切到 Level H 就會變得無法讀取。編碼器無法在靜默的情況下放大符號版本而不產生更密集的結果,這就是為什麼對於大量文字內容,預覽並實際掃描輸出結果,比短內容來得更重要。

20 行、2,000 字元的輸入限制

批次 QR 碼產生器強制執行兩個相互作用的限制:每批最多 20 筆不重複的行,以及每行最多 2,000 個 JavaScript 字元。這兩項限制都是為了限制 CPU、記憶體、排版工作量,以及瀏覽器可能自動觸發的下載提示次數。解析器會去除前後空白、移除空行、並去除完全重複的項目,同時保留第一次出現的順序,這代表 30 行中有 10 筆重複的清單,在編碼開始前會被合併為 30 行。檔名以兩位數的批次位置開頭,再加上從內容衍生的簡短 ASCII 詞幹;例如 https://example.com 這一行會變成 01-example-com.png,而沒有任何 ASCII 字母或數字的行則會以 qr-code 作為詞幹。這些檔名只是方便辨識的標籤,絕不會改變編碼進去的內容。

如果單一行超過 2,000 字元,或整批超過 20 筆不重複的值,該工具會強制執行這些上限,而不是產出可能會被誤認為是完整輸出的部分結果。這種明確失敗的行為能保護你不會誤貼標籤到庫存上、誤印活動識別證,或用一張未經檢查的圖片取代了既有的 QR 碼。每一行同樣限制為 2,000 個 JavaScript 字元,以限制手機與一般筆電上的 CPU、記憶體、排版工作量,以及意外的大量下載。對於非常大量的文字——完整段落、多行地址,或冗長的產品描述——請將內容拆成多個批次行,讓每個項目都落在 2,000 字元上限與 20 行批次上限之內。

從大量文字清單產生 PNG

從大量文字清單到經過驗證的 PNG,最短的路徑就是按部就班:準備輸入、選擇顯示設定、產生、掃描,然後只下載在目標裝置上能正確讀取的符號。該工具會執行一個非同步的工作識別碼,這樣當你變更輸入或選項時,舊的設定就不會覆蓋掉目前的批次。

  1. 開啟批次 QR 碼產生器,將每行一段文字或網址貼到輸入區,每行保持在 2,000 字元以內,去重後總數保持在 20 筆不重複項目以內。
  2. 根據 QR 碼要顯示或列印的位置,選擇 128、256 或 512 像素的 PNG 畫布大小;像素大小控制的是呈現的解析度,而不是資料容量。
  3. 選擇一個容錯等級——L、M、Q 或 H——並了解較高的等級會用資料空間換取修復能力,可能迫使符號變得更密集。
  4. 點擊「產生 QR 碼」,等待所有預覽渲染完成;頁面會執行一個非同步的工作識別碼,舊的設定不會覆蓋掉目前的批次。
  5. 開啟你計畫出貨時所使用的相機 App 或掃描器,掃描每個預覽縮圖,並確認解碼出來的內容與原始行完全一致。
  6. 使用標示好的下載連結,逐一點選下載每張通過驗證的 PNG,並保留清晰的靜止區,避免拉伸、重新上色、裁切或遮蓋定位圖案。
  7. 如果有任何一行無法解碼,請縮短文字或調整批次設定後重新產生批次。

當每一行都很長時如何選擇容錯

四個容錯等級 L、M、Q、H 根據 DENSO WAVE 公布的規格,分別對應大約 7%、15%、25%、30% 的碼字修復率。對於每一行都接近單一符號容量的長文字批次,實務上的預設是 Level M,它在乾淨的顯示環境下能兼顧資料空間與修復能力。Level L 提供最充裕的密集內容空間,但幾乎無法從刮傷或部分遮擋中恢復;只有在以高對比列印於平滑紙張時才選擇它。Level Q 與 Level H 適合用於戶外、會彎折的包裝,或位於亮面護貝之後的場景——但請準備好編碼器可能會將符號升級到更大的版本,產生明顯較小的模組,讓較便宜的相機無法解析。

等級 大約的碼字修復率 最適合用於 取捨
L ~7% 高密度內容、乾淨的列印品 損壞時幾乎無法恢復
M ~15% 一般用途的乾淨顯示 大多數情況下的預設
Q ~25% 戶外、包裝、輕微反光 資料預算較小
H ~30% 工業、嚴苛環境 會迫使符號變得更密集、更細緻

測試最壞情況,而不是平均情況:一張含有 UTM 參數的長網址、加上貼在有紋理表面上的貼紙,這才是真實的測試;而不是桌燈下一張剛列印出來的紙。對於密集內容的像素大小決策,批次 QR 碼產生器的 128px 指南會說明較小的畫布在什麼情況下仍然清晰可讀,以及在什麼情況下不行。

檔名、靜止區與 PNG 處理

每張產生的 PNG 都有一個由兩位數的批次位置加上從內容衍生的簡短 ASCII 詞幹所構成的決定性檔名。例如讀取為 https://example.com 的一行會變成 01-example-com.png,而沒有任何 ASCII 字母或數字的內容則會改用 qr-code。檔名只是方便辨識的標籤;不會影響符號編碼的內容。下載後,請在影像周圍保留清晰的靜止區,絕不要重新上色、裁切、拉伸或遮蓋角落的三個定位圖案。任何上述動作都可能讓掃描器失效,即使底層資料仍然完好。該頁面只提供個別的下載連結,而不是打包成單一壓縮檔,以保持工具輕量化;每一次點擊都是明確的,這能避免一次跳出 20 個瀏覽器下載提示,並讓你清楚知道實際選擇保留了哪些檔案。如果你需要把整批檔案傳給同事,請在驗證後於自己的機器上手動壓縮成 zip。

為什麼以目標裝置掃描才是唯一真正的驗證

一張產生的 PNG 並不能證明每台掃描器都能讀到預期的內容。長篇的 UTF-8 文字、表情符號、列印大小、對比、相機對焦、顯示器反光、物理損壞,以及掃描器的行為,都會影響成功率。有些 QR 掃描器對網址、聯絡人文字或其他內容的解讀方式不同,而底層的 qrcode 1.5.4 程式庫也說明尚未完整支援 ECI,這可能會影響延伸字元的解碼方式。最可靠的工作流程,是用你的受眾實際會使用的裝置、作業系統與應用程式來掃描每張最終的 PNG,然後逐字比對解碼出來的內容與原始行。請勿根據一張未經檢查的圖片來發布、列印、為庫存貼標、發送活動資料,或取代既有的 QR 碼。對於付款、身分驗證密鑰、安全指示,或任何不可逆的動作,在完成預定掃描器上的實體掃描之前,請將 QR 碼視為不可信。所有編碼與 PNG 渲染都完全在當前的瀏覽器分頁內進行;不會上傳、縮短、追蹤或記錄任何內容,因此你可以在不留任何痕跡的情況下重複驗證循環。

若想更深入了解,請參閱 在批次網址產生器中建立遞減清單。

若想更深入了解,請參閱 Android 上的批次 QR 碼產生器:瀏覽器工作流程。