没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|使用教程|编辑:吉炜炜|2025-06-24 14:40:22.513|阅读 9 次
概述:本文将介绍两种方法,讲述如何使用 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@evget.com
文章转载自:慧都网本文将介绍两种方法,讲述如何使用 C# 从 PDF 中提取条码信息:一种是提取 PDF 页面中的嵌入图片后识别条码,另一种是将整个页面渲染为图像再进行识别。这两种方法都支持识别多种 1D 和 2D 条码类型。
本教程主要为大家介绍DevExpress WinForms WinExplorer视图的项目自定义,欢迎下载最新版组件体验!
将复杂的 DGN 文件转换为可缩放矢量图形 (SVG),SVG 广泛应用于 Web 应用程序和数字媒体,以及建筑、工程和施工等行业,本教程将展示如何使用Aspose.CAD 将DGN导出为SVG。
本文将探索如何在DevExpress Blazor DxAiChat组件中启用函数调用,欢迎下载最新版组件体验!
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@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号