PDF 是 Portable Document Format 的簡稱,意為“可攜帶文檔格式”,是由 Adobe Systems 用于與應用程序、操作系統、硬件無關的方式進行文件交換所發展出的文件格式。PDF 文件以 PostScript 語言圖象模型為基礎,無論在哪種打印機上都可保證精確的顏色和準確的打印效果,即 PDF 會忠實地再現原稿的每一個字符、顏色以及圖象。
鑒于 PDF 文件格式比較復雜,一般通過第三方組件來對 PDF 進行操作,本文使用的是 itext7 。
官網:https://itextpdf.com/
NuGet:https://www.nuget.org/packages/itext7/
通過 NuGet 引入 itext7 組件之后,可以使用以下代碼提取 PDF 文件中的文字:
using System.Collections.Generic;
using iText.Kernel.Pdf;
using iText.Kernel.Pdf.Canvas.Parser;
using iText.Kernel.Pdf.Canvas.Parser.Listener;
public static class PdfHelper
{public static IEnumerable<string> ExtractText(string filename){using (var r = new PdfReader(filename))using (var doc = new PdfDocument(r)){for (int i = 1; i < doc.GetNumberOfPages(); i++){ITextExtractionStrategy strategy = new LocationTextExtractionStrategy();string text = PdfTextExtractor.GetTextFromPage(doc.GetPage(i), strategy);yield return text;}}}
}
示例代碼:
var lines = PdfHelper.ExtractText("{PDF文件路徑}").ToList();
需要注意的是:如果你的 PDF 文件是基于圖片的掃描版,那么本文的代碼是無法提取到文字的,你需要的是 OCR 技術。