没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-06-24 14:40:22.513|阅读 124 次
概述:本文将介绍两种方法,讲述如何使用 C# 从 PDF 中提取条码信息:一种是提取 PDF 页面中的嵌入图片后识别条码,另一种是将整个页面渲染为图像再进行识别。这两种方法都支持识别多种 1D 和 2D 条码类型。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
在 PDF 文档的 .NET 平台处理流程中,使用 C# 读取 PDF 条码 是一项常见需求,特别适用于处理扫描件或电子表单。无论是物流、金融、医疗还是制造行业,PDF 文档中经常包含用于追踪或识别的条码。这些条码可能是嵌入图像,也可能是矢量绘制图形。通过自动识别,可显著减少人工操作并提升数据处理效率。
本文将介绍两种方法,讲述如何使用 C# 从 PDF 中提取条码信息:一种是提取 PDF 页面中的嵌入图片后识别条码,另一种是将整个页面渲染为图像再进行识别。这两种方法都支持识别多种 1D 和 2D 条码类型。
要在 C# 中实现 PDF 条码识别功能,你需要以下工具:
Spire.PDF for .NET Spire.Barcode for .NET
加入Spire技术交流QQ群(125237868),与更多开发者一起提升文档开发技能。
通过 NuGet 安装命令如下:
Install-Package Spire.Barcode Install-Package Spire.PDF
下面将介绍两种方式从 PDF 中提取条码数据,可根据 PDF 文件中条码的具体类型选择合适的方法。
适用于扫描类 PDF,通常每一页都包含条码图像。可通过 BarcodeScanner.ScanOne() 方法读取单个图像中的一个条码。
using Spire.Barcode; using Spire.Pdf; using Spire.Pdf.Utilities; using System.Drawing; namespace ReadPDFBarcodeByExtracting { class Program { static void Main(string[] args) { // 载入PDF文件 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Sample.pdf"); // 获取页面图片信息 PdfPageBase page = pdf.Pages[0]; PdfImageHelper imageHelper = new PdfImageHelper(); PdfImageInfo[] imagesInfo = imageHelper.GetImagesInfo(page); // 遍历页面图片并读取条码信息 int index = 0; foreach (PdfImageInfo imageInfo in imagesInfo) { Image image = imageInfo.Image; string scanResult = BarcodeScanner.ScanOne((Bitmap)image); Console.WriteLine($"第 {index + 1} 个图像的扫描结果:\n" + scanResult + "\n"); index++; } } } }
以下图像展示了 PDF 页面截图与条码识别结果:
适用场景:PDF 是扫描件或条码以图像形式嵌入时。
当条码是通过矢量方式绘制在 PDF 页面上(而非图片)时,可将页面渲染为图像,再识别其中的条码。此时使用 BarcodeScanner.Scan() 方法可识别多个条码。
using Spire.Barcode; using Spire.Pdf; using System.Drawing; namespace ReadPDFBarcodeByExtracting { class Program { static void Main(string[] args) { // 载入PDF文件 PdfDocument pdf = new PdfDocument(); pdf.LoadFromFile("Sample.pdf"); // 遍历文档页面并保存页面为图像 for (int i = 0; i < pdf.Pages.Count; i++) { Image image = pdf.SaveAsImage(i); // 扫描识别图像中的所有二维码信息 string[] scanResults = BarcodeScanner.Scan((Bitmap)image); for (int j = 0; j < scanResults.Length; j++) { Console.WriteLine($"第 {i + 1} 页第 {j + 1} 个条码扫描结果:\n" + scanResults[j] + "\n"); } } } } }
下面展示的是使用方法二识别 PDF 页面中矢量条码的效果:
适用场景:条码是以绘图形式嵌入页面,而非图片。
PDF 文件来源多为扫描件或在线系统生成,条码既可能作为图像嵌入,也可能直接绘制在页面中,推荐根据实际情况灵活选择方法。建议在不确定文档结构时结合两种方法使用,以提升识别成功率。
使用场景 | 推荐方法 |
---|---|
扫描件或图像式条码 | 提取嵌入图片并识别 |
数字 PDF、矢量绘制条码 | 渲染整页图像再识别 |
混合内容或不确定结构 | 可尝试结合两种方法使用 |
通过本教程,你可以使用 C# 从 PDF 中提取条码信息,无论条码是图像嵌入还是矢量绘制,两种方法都能为你提供稳定的识别结果。在数据自动化处理场景中,这将大幅提升效率与准确性。
问:支持多页 PDF 吗?
答:支持。你可以循环处理 PDF 中的每一页,逐页识别条码。
问:能否识别每页多个条码?
答:可以。使用 BarcodeScanner.Scan() 方法可返回图像中所有检测到的条码。
问:提高识别精度的方法有哪些?
答:渲染页面时可设置更高 DPI,例如使用 SaveAsImage(int pageIndex, PdfImageType.Bitmap, int dpiX, int dpiY) 方法,推荐 300 DPI 以上。
————————————————————————————————————————
关于慧都科技:
慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务。E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。
欢迎下载|体验更多E-iceblue产品
获取更多信息请咨询 ;技术交流Q群(125237868)
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@fc6vip.cn
文章转载自:慧都网本文主要介绍DevExpress WPF Grid控件如何将数据绑定虚拟数据源,欢迎下载最新版组件体验!
本教程主要为大家介绍DevExpress WinForms数据网格控件中的过滤器行功能,欢迎下载最新版组件体验!
本文主要介绍了Tool Call Confirmation API层和DevExpress Blazor AI Chat组件的相关可自定义接口,欢迎下载最新版体验!
本文主要介绍DevExpress WPF Grid控件如何将数据绑定到本地数据库,欢迎下载最新版组件体验!
Spire.PDF for .NET是独立的PDF控件,用于.NET程序中创建、编辑和操作PDF文档
Spire.PDF for WPFSpire.PDF for WPF 是一款让你的app能够读取、写入和操作PDF文档的完全独立的组件,不需要任何第三方组件库。
Spire.PDF for Java独立专业的Java PDF组件,覆盖PDF文档生成、处理、转换等功能。
Spire.Barcode for Java专业的条码组件,专为开发人员在Java应用程序(J2SE和J2EE)上生成、读取和扫描1D、2D条形码而设计。
Spire.Barcode for .NET专业的.NET条形码组件。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@fc6vip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢