翻譯|使用教程|編輯:吉煒煒|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
文章轉載自:慧都網