IronOCR 操作指南 條形碼 / QR(超過 20 格式) 如何使用IronOCR在 C# 中讀取條碼和二維碼 Curtis Chau 更新:2026年2月11日 下載 IronOCR NuGet 下載 DLL 下載 Windows 安裝程式 開始免費試用 LLM副本 LLM副本 將頁面複製為 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# 中讀取條碼和二維碼。 只需此設置,即可從 PDF 和圖像中自動提取條碼值,並支援常規文字識別,支援 20 多種條碼格式,包括 QR 碼、Code 128 和 Data Matrix。 快速入門:立即從 PDF 讀取條碼 只需一次設定即可啟用條碼偵測,並使用IronOCR掃描 PDF。 下面的程式碼展示如何啟用條碼讀取、處理 PDF 以及檢索解碼值。 使用NuGet套件管理器安裝https://www.nuget.org/packages/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 Free 30 Day Trial 如何使用IronOCR在 C# 中讀取條碼和二維碼 下載用於讀取條碼和二維碼的 C# 函式庫。 匯入目標影像和PDF文件。 將**`ReadBarCodes`**屬性設為 true 即可啟用條碼讀取功能。 使用`Read`方法執行 OCR 操作,操作方式與往常一樣。 輸出偵測到的文字和條碼值。 如何從PDF文件中讀取條碼? 建立一個 IronTesseract 物件來執行讀取操作。 將ReadBarCodes屬性設為 true 以啟用條碼檢測。 使用OcrPdfInput建構子匯入 PDF 文件。 使用 `` 方法對導入的 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); } $vbLabelText $csharpLabel 條碼下方會顯示多個條碼值,這些值包含在擷取的文字中。 IronOCR為什麼能夠同時擷取文字和條碼值? IronOCR的雙重擷取功能可提供全面的文件分析。 在處理包含文字和條碼的文件時,該庫執行標準的 OCR 文字擷取,同時解碼條碼符號。 這種統一的方法消除了多次處理或單獨庫的需求。 文字擷取功能用於捕捉人類可讀的元素,而條碼偵測功能用於識別和解碼機器可讀的資料。 這有利於發票、發貨標籤或庫存報告等文件,因為條碼值與列印文字相關。 OcrResult 類別將這些輸出分開-透過 Text 屬性存取文本,透過 Barcodes 集合存取條碼資料。 支援哪些條碼格式? IronOCR支援超過 20 種條碼格式: 一維條碼: 代碼 128、代碼 39、代碼 93 EAN-13、EAN-8 UPC-A、UPC-E 科達巴爾 ITF(交錯式 2/5) MSI 普萊西 QR 圖條碼: QR 圖碼 數據矩陣 PDF417 阿茲特克密碼 MaxiCode 對於讀取 MICR 支票或處理身分證件等特殊應用,IronOCR 的條碼功能是對其文字擷取功能的補充。 何時應該使用 OCR 進行條碼讀取而不是使用專用條碼庫? 在下列情況下選擇 IronOCR 的整合式條碼讀取功能: 1.混合內容處理:文件包含文字和條碼(例如,貨運標籤、發票或掃描文件) 2.單一庫偏好:您希望最大限度地減少依賴項並使用單一解決方案。 PDF 處理:您已經在使用IronOCR進行PDF OCR 文字擷取。 4.複雜的文件版面:文件中文字區域或表格內嵌入了條碼。 在下列情況下使用專用條碼庫: 處理大量僅包含條碼的圖像 需要即時條碼掃描(反應時間< 50毫秒) 處理損壞或低品質的條碼需要專門的演算法 透過相機優化實現行動條碼掃描 如何讀取文檔中的二維碼? 與條碼讀取類似,將 ReadBarCodes 屬性設為 true。 除了檔案路徑之外,無需更改其他程式碼。 處理帶有二維碼的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); } $vbLabelText $csharpLabel 為什麼相同的配置既適用於條碼又適用於二維碼? 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. 這種設計簡化了實施過程,降低了配置的複雜性。 檢測演算法自動執行: 基於模式識別識別符號類型 應用適當的解碼演算法 處理方向和尺寸變化 無論條碼類型為何,均以一致的格式傳回結果 這種方法與電腦視覺模型的工作原理類似——透過訓練多種格式來提供通用的檢測能力。 使用OCR讀取二維碼時常見的問題有哪些? 處理二維碼時常見的挑戰包括: 1.解析度問題:PDF 中的二維碼可能會縮小到低於最小模組尺寸。請使用DPI 設定確保足夠的解析度(建議最低 300 DPI)。 2.影像品質:掃描的二維碼經常出現模糊、雜訊或失真等問題。 應用影像校正濾鏡以增強清晰度: // 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); $vbLabelText $csharpLabel 3.方向問題:傾斜角度的二維碼可能無法正確解碼。 啟用頁面旋轉偵測功能,以處理未對齊的文件。 4.混合內容幹擾:文字或圖形與二維碼重疊可能會阻止偵測。 必要時,可使用作物區域隔離二維碼區域。 如何提高二維碼辨識準確率? 利用以下技術優化二維碼識別: 1.影像預處理:使用濾鏡精靈確定最佳增強設定: // 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); $vbLabelText $csharpLabel 2.處理多頁文件:對於包含跨頁二維碼的多頁文件: // 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}"); } } $vbLabelText $csharpLabel 3.非同步處理:為了更好地處理多個文檔,請使用非同步方法: // Asynchronous QR code reading var result = await ocrTesseract.ReadAsync(imageInput); // Asynchronous QR code reading var result = await ocrTesseract.ReadAsync(imageInput); $vbLabelText $csharpLabel 4.調試識別問題:啟用結果高亮顯示,以視覺化IronOCR 的檢測結果: result.SaveAsHighlightedImage("qr-detection-debug.png"); result.SaveAsHighlightedImage("qr-detection-debug.png"); $vbLabelText $csharpLabel 大規模條碼處理的效能最佳化 在處理數千份帶有條碼和二維碼的文件時,請實施以下最佳化策略: 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(); $vbLabelText $csharpLabel 2.記憶體管理:長時間運行的操作使用中止令牌: // 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)); $vbLabelText $csharpLabel 3.結果匯出:將結果儲存為可搜尋的 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 的條碼功能可與現有的.NET應用程式無縫整合。 常見的集成場景包括: -庫存管理:從出貨清單中提取產品代碼 -文件歸檔:透過嵌入的條碼標識符對掃描文件進行索引 -發票處理:將條碼 SKU 與財務單據中的行項目進行匹配 -醫療記錄:處理病人腕帶條碼以及醫療表格 對於處理大量條碼和二維碼的生產應用,可以考慮實施進度跟踪,以監控處理狀態並根據實際指標優化效能。 常見問題解答 如何在 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 機器人,結合科技與創意的樂趣。 準備好開始了嗎? Nuget 下載 5,525,971 | 版本: 2026.3 剛剛發布 開始免費試用 免費 NuGet 下載 總下載量:5,525,971 查看許可證 還在捲動嗎? 想要快速證明? PM > Install-Package IronOcr 執行範例 觀看您的圖片變成可搜尋的文字。 免費 NuGet 下載 總下載量:5,525,971 查看許可證