IronBarcode 操作指南 .NET 從 PDF 中讀取條碼 如何在 C# 中讀取 PDF 中的條碼 Hairil Hasyimi Bin Omar 更新:10月 12, 2025 下載 IronBarcode NuGet 下載 DLL 下載 開始免費試用 法學碩士副本 法學碩士副本 將頁面複製為 Markdown 格式,用於 LLMs 在 ChatGPT 中打開 請向 ChatGPT 諮詢此頁面 在雙子座打開 請向 Gemini 詢問此頁面 在雙子座打開 請向 Gemini 詢問此頁面 打開困惑 向 Perplexity 詢問有關此頁面的信息 分享 在 Facebook 上分享 分享到 X(Twitter) 在 LinkedIn 上分享 複製連結 電子郵件文章 This article was translated from English: Does it need improvement? Translated View the article in English 從PDF文件中讀取條碼是指檢測和解碼PDF文件頁面中的條碼。與手動掃描列印的條碼不同,這項技術可以直接從數位文件中提取編碼資訊。 這對於自動化處理發票、發貨標籤、報告和其他使用條碼儲存資料的文件的工作流程尤其有用。 快速入門:直接從 PDF 讀取條碼 使用 IronBarcode 的 ReadPdf 方法即可直接上手——它無需先轉換為圖像,即可立即從 PDF 文件中讀取條碼。只需一行程式碼,即可快速提取條碼數據,並可根據需要建立更高級的功能。 立即開始使用 NuGet 建立 PDF 檔案: 使用 NuGet 套件管理器安裝 IronBarcode PM > Install-Package BarCode 複製並運行這段程式碼。 var results = IronBarCode.BarcodeReader.ReadPdf("invoice.pdf"); 部署到您的生產環境進行測試 立即開始在您的專案中使用 IronBarcode,免費試用! 免費試用30天 as-heading:3(概述:最小工作流程) 安裝條碼庫以處理條碼檔案。 如有需要,建立PdfBarcodeReaderOptions 。 使用BarcodeReader的ReadPdf方法從 PDF 讀取條碼。 使用BarcodeReaderOption指定其他條碼讀取選項。 提取條碼值。 直接讀取 PDF 文件中的條碼 除了 IronBarcodes 能夠從圖像中讀取條碼之外,IronBarcodes 還以其能夠從 PDF 文件中讀取條碼而自豪。 這樣就省去了用戶在將 PDF 文件導入 IronBarcode 讀取之前將其轉換為圖像的麻煩。 由於 PDF 文件比圖像更複雜、更不同,因此也應該使用不同的讀取方法,即BarcodeReader.ReadPdf()方法。 此方法接受多種類型的 PDF 文件輸入,包括: byte[]陣列:PDF 文件以位元組數組形式表示。 IEnumerable<Byte[]> :以位元組數組形式儲存在集合中的 PDF 文件。 MemoryStream :將 PDF 文件作為 MemoryStream 類型。 IEnumerable<Stream> :PDF 文件作為 MemoryStream 的集合。 String :PDF 文件路徑(字串形式)。 如果 PDF 文件已複製到專案中,則此字串表示 PDF 文件的名稱。 IEnumerable<String> :儲存在集合中的 PDF 文件路徑/名稱字串。 除了上面提到的輸入類型之外, BarcodeReader.ReadPdf()還接受PdfBarcodeReaderOptions來進行更高級/改進的讀取,我們將在下一個小主題中討論。 現在,讓我們來看看下面的程式碼片段,它示範如何使用BarcodeReader.ReadPdf()方法讀取 PDF 文件中的條碼。 :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-1.cs using IronBarCode; using System; using System.Collections.Generic; List<String> docs = new List<String>(); docs.Add(@"pdf_a.pdf"); docs.Add(@"pdf_b.pdf"); var myBarcode = BarcodeReader.ReadPdfs(docs); //can also accept individual PDF document file path as argument foreach (var value in myBarcode) { Console.WriteLine(value.ToString()); } Imports IronBarCode Imports System Imports System.Collections.Generic Private docs As New List(Of String)() docs.Add("pdf_a.pdf") docs.Add("pdf_b.pdf") Dim myBarcode = BarcodeReader.ReadPdfs(docs) 'can also accept individual PDF document file path as argument For Each value In myBarcode Console.WriteLine(value.ToString()) Next value $vbLabelText $csharpLabel 從上面的程式碼片段可以看出,要使用 IronBarcode 讀取條碼,只需將 PDF 文件的檔案路徑字串新增至BarcodeReader.ReadPdf()方法即可讀取條碼值並將結果儲存在變數中。 如果您希望將 PDF 文件中找到的所有條碼的值列印到控制台,只需使用foreach循環遍歷變量,並透過呼叫ToString()方法列印找到的每個元素即可。 此外,上面的程式碼片段也示範如何在BarcodeReader.ReadPdf()中使用 PDF 文件名稱集合作為參數。 同時閱讀多個PDF文件 除了將每個 PDF 單獨添加到數組中之外,IronBarCode 還引入了ReadPdfs方法,使開發人員能夠快速讀取 PDF 清單。 當您需要從多個 PDF 文件中提取條碼時,此功能非常有用,可以避免逐一添加。 我們來看下面的一個例子。 :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-read-from-multiple-pdf.cs using IronBarCode; using System; using System.Collections.Generic; using System.IO; // Get all PDF files from a directory and add to list string folderPath = @"PATH_TO_YOUR_FOLDER"; List<string> docs = new List<string>(Directory.GetFiles(folderPath, "*.pdf")); // Read barcodes from all PDFs var docResult = BarcodeReader.ReadPdfs(docs); // Print results foreach (var doc in docResult) { foreach (var item in doc) { Console.WriteLine("Barcode " + item.ToString() + " found at page " + item.PageNumber); } } IRON VB CONVERTER ERROR developers@ironsoftware.com $vbLabelText $csharpLabel 上面的程式碼首先從目錄中取得所有 PDF 文件,然後將它們新增到List<string>然後呼叫ReadPdfs並將docs作為我們的輸入參數。 ReadPdfs然後傳回一個BarcodeResults陣列。 最後,我們遍歷docResult並列印每個 PDF 中找到的條碼。 設定 PDF 條碼閱讀器選項 與從影像中讀取條碼類似,從 PDF 文件中讀取條碼也允許使用者調整條碼讀取器PdfBarcodeReaderOptions中的屬性。 調整PdfBarcodeReaderOptions中的屬性將大大幫助提高讀取品質、準確性和效能。 PdfBarcodeReaderOptions繼承了BarcodeReaderOptions中的所有可調整屬性,並為 PDF 文件添加了一些附加屬性。 使用者可以在實例化PdfBarcodeReaderOptions的新實例時,指定要套用PdfBarcodeReaderOptions的 PDF 文件中的頁碼或頁碼集合。 以下程式碼片段演示了: :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-2.cs using IronBarCode; using System.Collections.Generic; List<int> pageNumber = new List<int>() { 1, 2, 3 }; PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber) // can also use individual page number as argument { // Properties of PDF Barcode reader options }; Imports IronBarCode Imports System.Collections.Generic Private pageNumber As New List(Of Integer)() From {1, 2, 3} Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber) $vbLabelText $csharpLabel 現在讓我們來探索PdfBarcodeReaderOptions中除了BarcodeReaderOptions中提供的屬性之外,還有哪些屬性可以進行操作。 乾粉 使用者可以指定 PDF 文件中條碼影像的 DPI(每吋點數)。 這將有助於讀取 PDF 文件中低品質的條碼影像。 此屬性可以使用整數值進行設定。 頁碼 如果使用者事先知道 PDF 文件中包含需要讀取的條碼的頁碼,則可以在此屬性中指定該頁碼。 這樣做將大大提高 IronBarcode 的讀取性能,特別是對於有很多頁的 PDF 文檔,因為 IronBarcode 不需要讀取所有頁面或沒有條碼的頁面。 該屬性從 1 開始,這意味著 PDF 文件的第一頁為 1 而不是 0。 密碼 顧名思義,此功能使用戶能夠處理加密的 PDF 文件,需要輸入密碼才能存取 PDF 文件的內容。 請注意,IronBarcode 無法提供 PDF 文件的密碼。 此屬性接受字串輸入。 規模 此屬性允許使用者在轉換為影像時控制縮放寬度和高度的比例因子。 此屬性接受一個整數值,預設值為 3.5。設定此屬性有助於讀取 PDF 文件中的小條碼,因為放大會縮放 PDF 文件。 從 PDF 文件中進階讀取條碼 現在我們已經了解了PdfBarcodeReaderOptions中可用於調整和微調的屬性,讓我們看看如何在專案中應用它們來讀取 PDF 文件中的條碼。 :path=/static-assets/barcode/content-code-examples/how-to/read-barcodes-from-pdf-3.cs using IronBarCode; using System; using System.Collections.Generic; List<int> pageNumber = new List<int>() { 1, 2, 3 }; PdfBarcodeReaderOptions PdfOptions = new PdfBarcodeReaderOptions(pageNumber) { DPI = 150, //PageNumbers = pageNumber, //this property is not needed if page numbers has been specified as the argument in PdfBarcodeReaderOptions Password = "barcode", Scale = 3.5, //properties below are some of the properties inherited from BarcodeReaderOptions Speed = ReadingSpeed.Detailed, ExpectBarcodeTypes = BarcodeEncoding.Code93, ExpectMultipleBarcodes = true }; var myBarcode = BarcodeReader.ReadPdf(@"pdf_a_filepath.pdf", PdfOptions); foreach (var value in myBarcode) { Console.WriteLine(value.ToString()); } Imports IronBarCode Imports System Imports System.Collections.Generic Private pageNumber As New List(Of Integer)() From {1, 2, 3} Private PdfOptions As New PdfBarcodeReaderOptions(pageNumber) With { .DPI = 150, .Password = "barcode", .Scale = 3.5, .Speed = ReadingSpeed.Detailed, .ExpectBarcodeTypes = BarcodeEncoding.Code93, .ExpectMultipleBarcodes = True } Private myBarcode = BarcodeReader.ReadPdf("pdf_a_filepath.pdf", PdfOptions) For Each value In myBarcode Console.WriteLine(value.ToString()) Next value $vbLabelText $csharpLabel 上面的程式碼片段示範如何在 IronBarcode 中實作PdfBarcodeReaderOptions屬性。 在存取和調整屬性之前,需要先使用變數名稱初始化PdfBarcodeReaderOptions 。 在程式碼片段中,我們可以看到,在初始化PdfBarcodeReaderOptions時,PDF 文件的頁碼清單被用作參數。 這指定了我們希望PdfBarcodeReader的設定套用到的頁碼。 使用者也可以將 PDF 頁碼指定為PdfBarcodeReaderOptions屬性中的PageNumbers 。 另一方面,我們也可以看到,我們可以在PdfBarcodeReaderOptions中使用BarcodeReaderOptions中的屬性,例如ExpectMultipleBarcodes和ExpectBarcodeTypes ,因為它們是從原始類別繼承的。 這將大大提高整體閱讀表現和準確率。 若要將PdfBarcodeReaderOptions的設定屬性套用於條碼讀取,請將我們建立的PdfBarcodeReaderOptions類別的變數名稱作為BarcodeReader.ReadPdf()方法的第二個參數輸入,並將要讀取的 PDF 文件的檔案路徑輸入為第一個參數。 常見問題解答 如何從 PDF 文件中讀取條碼? 您可以在 .NET 應用程式中使用 BarcodeReader 類的 `ReadPdf` 方法從 PDF 文檔中讀取條碼。此方法接受字節數組、記憶流和文件路徑等輸入。 使用 PdfBarcodeReaderOptions 有什麼優勢? PdfBarcodeReaderOptions 提供增強條碼讀取質量和準確性的設置,如調整 DPI、指定頁碼以及對具密碼加密的 PDF 處理。 我可以從加密的 PDF 文件中讀取條碼嗎? 可以,您可以使用 PdfBarcodeReaderOptions 中的 Password 屬性提供必要的密碼,以便從加密的 PDF 文件中讀取條碼。 如何提高從 PDF 中讀取條碼的效率? 通過使用 PdfBarcodeReaderOptions 指定頁碼和調整比例因數來提高效率,這樣可以減少將 PDF 轉換為圖像的需求,節省時間和資源。 ReadPdf 方法接受哪些輸入格式? ReadPdf 方法接受多種輸入格式,包括 byte[] 數組、MemoryStream 和字符串文件路徑。 是否可能從單個 PDF 文件中讀取多個條碼? 是的,通過在 PdfBarcodeReaderOptions 中設置 ExpectMultipleBarcodes 屬性,您可以從單個 PDF 文件中讀取多個條碼。 我該如何指定從 PDF 中讀取條碼的解析度? 通過在 PdfBarcodeReaderOptions 中設置 DPI 屬性為所需的整數值來控制掃描質量。 比例因數在從 PDF 中讀取條碼中起什麼作用? 默認為 3.5 的比例因數用於將 PDF 轉換為圖像,影響條碼讀取的質量和性能。 我可以使用 .NET 條碼庫來從圖像中讀取條碼嗎? 可以,像 IronBarcode 這樣的 .NET 條碼庫可以使用針對每個格式的具體方法從圖像和 PDF 文件中讀取條碼。 如果條碼讀取不夠準確我該怎麼辦? 如果條碼讀取不夠準確,請調整 PdfBarcodeReaderOptions,通過更改 DPI、比例因數或指定正確的頁碼以提高質量。 Hairil Hasyimi Bin Omar 立即與工程團隊聊天 軟體工程師 和所有优秀的工程师一样,Hairil 是个努力学习者。他正在细化自己的 C# 、Python 和 Java 知识,将这些知识应用于 Iron Software 各个团队成员以增加价值。Hairil 自马来西亚 Universiti Teknologi MARA 加入 Iron Software 团队,并以化学与工艺工程学士学位毕业。 準備好開始了嗎? Nuget 下載 1,979,979 | Version: 2025.11 剛發表 免費下載 NuGet 下載總數:1,979,979 檢視授權