IronBarcode 操作指南 .NET 从 PDF 中读取条形码 如何在 C# 中读取 PDF 中的条形码 Hairil Hasyimi Bin Omar 已更新:十月 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 文档中的条形码 除了 IronBarcode 能够从图像中读取条形码外,IronBarcode 还以能够从 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中提供的属性之外,还有哪些属性可以进行操作。 DPI 用户可以指定 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 文件中读取条形码,对每种格式使用特定方法。 如果条形码读取精度不够,怎么办? 如果条形码读取不够精确,请通过更改 DPI、比例因子或指定正确的页码来调整 PdfBarcodeReaderOptions 以提高质量。 Hairil Hasyimi Bin Omar 立即与工程团队聊天 软件工程师 如所有伟大的工程师一般,Hairil 是个热心的学习者。他正在提高对 C#、Python 和 Java 的知识,并利用这些知识为 Iron Software 团队成员增值。Hairil 从马来西亚的玛拉工业大学加入 Iron Software 团队,获得化学与工艺工程学士学位。 准备开始了吗? Nuget 下载 1,979,979 | Version: 2025.11 刚刚发布 免费 NuGet 下载 总下载量:1,979,979 查看许可证