IronOCR 操作指南 条形码 / QR(超过 20 格式) 如何使用 IronOCR 在 C## 中讀取條碼和 QR 碼。 Curtis Chau 更新:2026年1月10日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在 Grok 中打開 向 Grok 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English IronOCR 可透過在設定中設定 ReadBarCodes = true 來讀取 C# 中的條碼和 QR 碼。 此單一設定可從 PDF 和影像中自動擷取條碼值,並同時識別一般文字,支援超過 20 種條碼格式,包括 QR code、Code 128 和 Data Matrix。 快速入門:立即從 PDF 讀取條碼 只需一個設定即可啟用條碼偵測,並使用 IronOCR 掃描 PDF。 以下程式碼顯示如何開啟條碼讀取、處理 PDF 並擷取解碼值。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronOCR PM > Install-Package IronOcr 複製並運行這段程式碼。 var result = new IronOcr.IronTesseract() { Configuration = new IronOcr.TesseractConfiguration { ReadBarCodes = true } }.Read(new IronOcr.OcrPdfInput("document.pdf")); foreach(var bc in result.Barcodes) Console.WriteLine(bc.Value); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronOCR,免費試用! 免費試用30天 ## 如何使用 IronOCR 在 C# 中讀取條碼和二維碼 下載用於讀取條碼和二維碼的 C# 函式庫。 匯入目標影像和PDF文件。 透過設定 ReadBarCodes 屬性為 true 來啟用條碼讀取功能。 使用Read方法執行 OCR 操作,操作方式與往常一樣。 輸出偵測到的文字和條碼值。 如何從 PDF 文件讀取 BarCode? 建立一個 IronTesseract 物件來執行閱讀。 將 ReadBarCodes 屬性設定為 true,以啟用條碼偵測。 使用 OcrPdfInput 建構器來匯入 PDF 文件。 使用 Read 方法對匯入的 PDF 執行 OCR。 以下是使用此 PDF 文件的範例: :path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-barcodes.cs using IronOcr; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Enable barcode reading ocrTesseract.Configuration.ReadBarCodes = true; // Add PDF using var imageInput = new OcrPdfInput("pdfWithBarcodes.pdf"); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output detected barcodes and text values Console.WriteLine("Extracted text:"); Console.WriteLine(ocrResult.Text); Console.WriteLine("Extracted barcodes:"); foreach (var barcode in ocrResult.Barcodes) { Console.WriteLine(barcode.Value); } Imports IronOcr Imports System ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Enable barcode reading ocrTesseract.Configuration.ReadBarCodes = True ' Add PDF Dim imageInput = New OcrPdfInput("pdfWithBarcodes.pdf") ' Perform OCR Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput) ' Output detected barcodes and text values Console.WriteLine("Extracted text:") Console.WriteLine(ocrResult.Text) Console.WriteLine("Extracted barcodes:") For Each barcode In ocrResult.Barcodes Console.WriteLine(barcode.Value) Next barcode $vbLabelText $csharpLabel 多個 BarCode 值會出現在條碼下方,並包含在擷取的文字中。 為什麼 IronOCR 可同時擷取文字和 BarCode 值? IronOCR 的雙重擷取功能可提供全面的文件分析。 在處理同時包含文字和 BarCode 的文件時,程式庫會執行 標準 OCR 文字擷取,同時解碼條碼符號。 這種統一的方法可省去多重處理過程或獨立的程式庫。 文字萃取會擷取人類可讀的元素,而 BarCode 偵測則會識別並解碼機器可讀的資料。 這對發票、運送標籤或庫存報告等文件有利,這些文件中的 BarCode 值與列印的文字相關聯。 OcrResult class 將這些輸出分開 - 透過 Text 屬性存取文字,並透過 Barcodes 集合存取條碼資料。 支援哪些 BarCode 格式? IronOCR 支援 20 種以上的 BarCode 格式: 1D BarCode: Code 128、Code 39、Code 93 EAN-13、EAN-8 UPC-A、UPC-E 科達巴爾 ITF (交錯 2 of 5) MSI 普萊西 2D BarCode: QR 代碼 資料矩陣 PDF417 阿茲台克代碼 MaxiCode 對於專門的應用程式,例如讀取 MICR 支票或處理身份文件,IronOCR 的 BarCode 功能可補足其文字擷取功能。 何時我應該使用 OCR 來讀取條碼,而不是專用的條碼程式庫? 選擇 IronOCR 的整合式 BarCode 閱讀時: 1.混合內容處理:文件同時包含文字和 BarCode (出貨標籤、發票或 掃描文件) 2.單一程式庫偏好:您希望盡量減少依賴性,並使用單一解決方案 3.PDF 處理:您已經在使用 IronOCR 進行 PDF OCR 文字擷取。 4.複雜的文件佈局:文件在文字區域或表格中嵌入了 BarCode 使用專用的 BarCode 程式庫時: 處理高容量的純 BarCode 影像 要求實時掃描 BarCode(反應時間 < 50ms) 處理損壞或低品質的 BarCode,需要專門的演算法 利用攝影機最佳化實作行動條碼掃描 如何從文件讀取 QR 碼? <! -- --> <!--說明:顯示逐步過程的截圖 --> 就像條碼讀取一樣,將 ReadBarCodes 屬性設定為 true。 除了檔案路徑之外,不需要其他程式碼變更。 使用 QR 碼處理此 PDF 文件: :path=/static-assets/ocr/content-code-examples/how-to/barcodes-read-qr-codes.cs using IronOcr; using System; // Instantiate IronTesseract IronTesseract ocrTesseract = new IronTesseract(); // Enable barcode reading ocrTesseract.Configuration.ReadBarCodes = true; // Add PDF using var imageInput = new OcrPdfInput("pdfWithQrCodes.pdf"); // Perform OCR OcrResult ocrResult = ocrTesseract.Read(imageInput); // Output detected barcodes and text values Console.WriteLine("Extracted text:"); Console.WriteLine(ocrResult.Text); Console.WriteLine("Extracted barcodes:"); foreach (var barcode in ocrResult.Barcodes) { Console.WriteLine(barcode.Value); } Imports IronOcr Imports System ' Instantiate IronTesseract Private ocrTesseract As New IronTesseract() ' Enable barcode reading ocrTesseract.Configuration.ReadBarCodes = True ' Add PDF Dim imageInput = New OcrPdfInput("pdfWithQrCodes.pdf") ' Perform OCR Dim ocrResult As OcrResult = ocrTesseract.Read(imageInput) ' Output detected barcodes and text values Console.WriteLine("Extracted text:") Console.WriteLine(ocrResult.Text) Console.WriteLine("Extracted barcodes:") For Each barcode In ocrResult.Barcodes Console.WriteLine(barcode.Value) Next barcode $vbLabelText $csharpLabel 為什麼相同的配置對 BarCode 和 QR Code 都有效? IronOCR 的統一條碼檢測引擎對所有機器可讀碼一視同仁。 The ReadBarCodes configuration activates a comprehensive symbology detector that recognizes both 1D (linear barcodes) and 2D (QR codes, Data Matrix) formats without requiring format-specific settings. 此設計可簡化實作並降低配置複雜度。 偵測演算法會自動 根據模式識別識別符號類型 應用適當的解碼演算法 可處理方向與尺寸的變化 無論是何種 BarCode 類型,都能以一致的格式傳回結果 此方法反映了 Computer Vision models 的工作方式 - 在多種格式上進行訓練,以提供通用的偵測能力。 使用 OCR 讀取 QR 碼時有哪些常見問題? 處理 QR 代碼時常見的挑戰包括 1.解決問題:PDF 中的 QR 代碼可能會被降低取樣率,使其低於最小模組大小。請使用 DPI 設定,以確保有足夠的解析度 (建議最低 300 DPI)。 2.影像品質:掃描的 QR 碼經常出現模糊、雜訊或失真的情況。 套用影像修正篩選器以提高清晰度: // Apply filters to improve QR code readability ocrTesseract.Configuration.ReadBarCodes = true; var input = new OcrImageInput("qr-code-scan.jpg"); input.DeNoise(); input.Sharpen(); input.EnhanceResolution(); var result = ocrTesseract.Read(input); // Apply filters to improve QR code readability ocrTesseract.Configuration.ReadBarCodes = true; var input = new OcrImageInput("qr-code-scan.jpg"); input.DeNoise(); input.Sharpen(); input.EnhanceResolution(); var result = ocrTesseract.Read(input); ' Apply filters to improve QR code readability ocrTesseract.Configuration.ReadBarCodes = True Dim input As New OcrImageInput("qr-code-scan.jpg") input.DeNoise() input.Sharpen() input.EnhanceResolution() Dim result = ocrTesseract.Read(input) $vbLabelText $csharpLabel 3.方位問題:有角度的 QR 碼可能無法正確解碼。 啟用頁面旋轉偵測以處理錯位的文件。 4.混合內容干擾:文字或圖形重疊 QR 代碼可能會阻止偵測。 必要時使用 rop regions 來隔離 QR 碼區域。 如何提高 QR 碼識別準確度? 使用這些技術優化 QR 碼識別: 1.預先處理圖片:使用 Filter Wizard 來確定最佳的增強設定: // Enhanced QR code reading with preprocessing var ocrTesseract = new IronTesseract(); ocrTesseract.Configuration.ReadBarCodes = true; // Configure for better QR detection var input = new OcrImageInput("document-with-qr.pdf"); input.TargetDPI = 300; // Ensure sufficient resolution input.Binarize(); // Convert to black and white input.DeNoise(); // Remove image artifacts var result = ocrTesseract.Read(input); // Enhanced QR code reading with preprocessing var ocrTesseract = new IronTesseract(); ocrTesseract.Configuration.ReadBarCodes = true; // Configure for better QR detection var input = new OcrImageInput("document-with-qr.pdf"); input.TargetDPI = 300; // Ensure sufficient resolution input.Binarize(); // Convert to black and white input.DeNoise(); // Remove image artifacts var result = ocrTesseract.Read(input); Imports IronTesseract ' Enhanced QR code reading with preprocessing Dim ocrTesseract = New IronTesseract() ocrTesseract.Configuration.ReadBarCodes = True ' Configure for better QR detection Dim input = New OcrImageInput("document-with-qr.pdf") input.TargetDPI = 300 ' Ensure sufficient resolution input.Binarize() ' Convert to black and white input.DeNoise() ' Remove image artifacts Dim result = ocrTesseract.Read(input) $vbLabelText $csharpLabel 2.處理多頁面:適用於多頁文件,其中包含橫跨多頁的 QR 代碼: // Process multi-page documents efficiently using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf"); pdfInput.TargetDPI = 300; var results = ocrTesseract.Read(pdfInput); foreach (var page in results.Pages) { Console.WriteLine($"Page {page.PageNumber}:"); foreach (var barcode in page.Barcodes) { Console.WriteLine($" QR Code: {barcode.Value}"); Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}"); } } // Process multi-page documents efficiently using var pdfInput = new OcrPdfInput("multi-page-qr-document.pdf"); pdfInput.TargetDPI = 300; var results = ocrTesseract.Read(pdfInput); foreach (var page in results.Pages) { Console.WriteLine($"Page {page.PageNumber}:"); foreach (var barcode in page.Barcodes) { Console.WriteLine($" QR Code: {barcode.Value}"); Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}"); } } Imports System ' Process multi-page documents efficiently Using pdfInput As New OcrPdfInput("multi-page-qr-document.pdf") pdfInput.TargetDPI = 300 Dim results = ocrTesseract.Read(pdfInput) For Each page In results.Pages Console.WriteLine($"Page {page.PageNumber}:") For Each barcode In page.Barcodes Console.WriteLine($" QR Code: {barcode.Value}") Console.WriteLine($" Location: X={barcode.X}, Y={barcode.Y}") Next Next End Using $vbLabelText $csharpLabel 3.同步處理:若要在處理多個文件時獲得更好的效能,請使用 async 方法: // Asynchronous QR code reading var result = await ocrTesseract.ReadAsync(imageInput); // Asynchronous QR code reading var result = await ocrTesseract.ReadAsync(imageInput); ' Asynchronous QR code reading Dim result = Await ocrTesseract.ReadAsync(imageInput) $vbLabelText $csharpLabel 4.Debug 識別問題:啟用 result highlighting 可視化 IronOCR 檢測到的內容: result.SaveAsHighlightedImage("qr-detection-debug.png"); result.SaveAsHighlightedImage("qr-detection-debug.png"); result.SaveAsHighlightedImage("qr-detection-debug.png") $vbLabelText $csharpLabel 大型條碼處理的效能最佳化 在處理數以千計帶有 BarCode 和 QR 代碼的文件時,請執行這些最佳化策略: 1.多執行緒:利用多執行緒處理來同時處理多個文件: // Process multiple documents in parallel var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" }; var results = documents.AsParallel().Select(doc => { var tesseract = new IronTesseract(); tesseract.Configuration.ReadBarCodes = true; return tesseract.Read(new OcrPdfInput(doc)); }).ToList(); // Process multiple documents in parallel var documents = new[] { "doc1.pdf", "doc2.pdf", "doc3.pdf" }; var results = documents.AsParallel().Select(doc => { var tesseract = new IronTesseract(); tesseract.Configuration.ReadBarCodes = true; return tesseract.Read(new OcrPdfInput(doc)); }).ToList(); ' Process multiple documents in parallel Dim documents = {"doc1.pdf", "doc2.pdf", "doc3.pdf"} Dim results = documents.AsParallel().Select(Function(doc) Dim tesseract = New IronTesseract() tesseract.Configuration.ReadBarCodes = True Return tesseract.Read(New OcrPdfInput(doc)) End Function).ToList() $vbLabelText $csharpLabel 2.記憶體管理:使用 abort tokens 來處理長時間執行的作業: // Implement cancellation for large batch processing using var cts = new CancellationTokenSource(); ocrTesseract.Configuration.CancellationToken = cts.Token; // Cancel if processing takes too long cts.CancelAfter(TimeSpan.FromMinutes(5)); // Implement cancellation for large batch processing using var cts = new CancellationTokenSource(); ocrTesseract.Configuration.CancellationToken = cts.Token; // Cancel if processing takes too long cts.CancelAfter(TimeSpan.FromMinutes(5)); ' Implement cancellation for large batch processing Using cts As New CancellationTokenSource() ocrTesseract.Configuration.CancellationToken = cts.Token ' Cancel if processing takes too long cts.CancelAfter(TimeSpan.FromMinutes(5)) End Using $vbLabelText $csharpLabel 3.結果匯出:將結果儲存為可搜尋的 PDFs,以維護文字和 BarCode 資料: // Export results with embedded barcode values result.SaveAsSearchablePdf("output-with-barcodes.pdf"); // Export results with embedded barcode values result.SaveAsSearchablePdf("output-with-barcodes.pdf"); ' Export results with embedded barcode values result.SaveAsSearchablePdf("output-with-barcodes.pdf") $vbLabelText $csharpLabel 與商業應用程式整合 IronOCR for .NET 的 BarCode 功能可與現有的 .NET 應用程式無縫整合。 常見的整合情境包括 庫存管理:從出貨艙單中擷取產品編號 文件存檔:透過內嵌的 BarCode 識別碼索引掃描的文件 發票處理:將條碼 SKU 與 財務文件中的明細項目相搭配 醫療記錄:在醫療表格旁邊處理病患腕帶 BarCode 對於處理大量條碼和 QR 代碼的生產應用程式,請考慮實施 進度追蹤,以監控處理狀態,並根據真實世界的指標優化效能。 常見問題解答 如何在 C# 應用程式中啟用 BarCode 讀取功能? 使用 IronOCR,透過在 TesseractConfiguration 中設定 ReadBarCodes = true 來啟用條碼讀取功能。這個單一設定可啟動 PDF 和影像中條碼值的自動擷取,並同時支援超過 20 種條碼格式的一般文字辨識。 我可以從同一份文件中同時讀取文字和 BarCode 嗎? 是的,IronOCR 執行雙重擷取 - 它透過標準 OCR 擷取人類可讀的文字,同時解碼機器可讀的 BarCode。OcrResult 類將這些輸出分開,文字可透過 Text 屬性存取,條碼資料則透過 BarCode 集合存取。 可以檢測哪些 BarCode 格式? IronOCR 支援超過 20 種條碼格式,包括一維條碼(Code 128、Code 39、Code 93、EAN-13、EAN-8、UPC-A、UPC-E、Codabar、ITF、MSI、Plessey)和二維條碼(QR Code、Data Matrix 等)。 如何從 PDF 文件中提取 BarCode? 建立一個 IronTesseract 物件,將 ReadBarCodes 設為 true,使用 OcrPdfInput 構建器匯入您的 PDF,然後使用 Read 方法。IronOCR 將執行 OCR 並擷取所有偵測到的 BarCode 值,您可以透過 result.Barcodes 套件存取這些值。 文字 OCR 和 BarCode 讀取是否需要獨立的程式庫? 不,IronOCR 的統一方法不需要多重處理通道或獨立的程式庫。它可執行標準的 OCR 文字擷取,同時在單一作業中解碼 BarCode 符號。 Curtis Chau 立即與工程團隊聊天 技術撰稿人 Curtis Chau 擁有電腦科學學士學位(卡爾頓大學),專長於前端開發,精通 Node.js、TypeScript、JavaScript 和 React。Curtis 對製作直覺且美觀的使用者介面充滿熱情,他喜歡使用現代化的架構,並製作結構良好且視覺上吸引人的手冊。除了開發之外,Curtis 對物聯網 (IoT) 也有濃厚的興趣,他喜歡探索整合硬體與軟體的創新方式。在空閒時間,他喜歡玩遊戲和建立 Discord bots,將他對技術的熱愛與創意結合。 準備好開始了嗎? Nuget 下載 5,384,824 | 版本: 2026.2 剛剛發布 免費 NuGet 下載 總下載量:5,384,824 查看許可證