如何在C#,vb等.NET平台语言里实现快速准确从pdf文件读取,或者从Pdf指定页面读取条形码或QR二维码呢?答案是使用SharpBarcode!
SharpBarcode是C#快速高效、准确的条形码,线性条码,QR二维码的读取和生成类库。接口调用简单,文档齐全。
初识SharpBarcode
您可以点击下面的链接了解更多信息:
1、SharpBarcode简介
2、一张图看懂SharpBarcode
从pdf读取条码
本博文主要介绍如何借助SharpBarcode实现从pdf读取条形码或QR二维码。从上面的两篇文章中,相信您已经大概了解了该类库。那么如何实现从pdf读取条码呢?对!就是BarcodeReadEngine的静态方法!
设置授权码
在您调用SharpBarcode的方法之前,必须先设置授权,如果是试用版,直接传入Test即可。
//设置授权码
KeyMgr.SetKey("Test");
调用BarcodeReadEngine的静态方法读取
我们可以打开SharpBarcode的API帮助文档,我们可以看到很多SharpBarcode的静态方法。虽然方法有很多,理解起来很容易,因为他们按照读取的条码个数不同区分,或者是按照数据源的不同来区分。
通过名字就可以一眼看出具体的功能,我们可以根据项目中的实际情况来调用合适的方法。
//得到Pdf文件全路径
string strFullPath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "test.pdf");
//调用带Pdf的重载方法来实现从Pdf读取,可以指定特定的页,或者多个页
PagedBarcodeResult[] resultArr = BarcodeReadEngine.ReadBarcodesFromPdfPage(strFullPath, 1);
//显示每一个识别到的barcode,以及总共识别出多少个barcode
if (resultArr != null && resultArr.Length > 0)
{
label32.Text = string.Format("类型:{0},值:{1}", resultArr[0].BarcodeType, resultArr[0].Text);
label1.Text = string.Format("类型:{0},值:{1}", resultArr[1].BarcodeType, resultArr[1].Text);
label3.Text = string.Format("类型:{0},值:{1}", resultArr[2].BarcodeType, resultArr[2].Text);
//显示读取到了多少个
label6.Text = resultArr.Length.ToString();
}
else
{
label6.Text = "0";
}
程序运行结果如下图:
更多说明
SharpBarcode不仅支持从pdf文件读取,而且支持从pdf的字节流,pdf的Stream等等数据源读取。具体可以看API手册。