从pdf中提取文本到c#

本文关键字:取文本 提取 pdf | 更新日期: 2023-09-27 18:26:23

我正在寻找一种从pdf中提取文本并在程序中使用的方法。我在网上做了一些研究,有几个图书馆在工作。这些都不是免费的;然而,我们在这些限制上遇到了困难。

所以我在找一个免费的图书馆。我想到了ITextSharp,但我不知道该怎么开始。你们能帮我吗?

从pdf中提取文本到c#

类似的东西应该适用于您。你必须注意——他们总是用iTextSharp版本更改函数名,这有点烦人——Lol

public static string GetPDFText(String pdfPath)
{
    PdfReader reader = new PdfReader(pdfPath); 
    StringWriter output = new StringWriter();  
    for (int i = 1; i <= reader.NumberOfPages; i++) 
        output.WriteLine(PdfTextExtractor.GetTextFromPage(reader, i, new SimpleTextExtractionStrategy()));
    return output.ToString();
}

iTextSharp是开源的,但许可模式在4.1.6版本之后发生了变化。旧的许可证没有那么严格,而如果你在商业上使用它,并且不想发布源代码,新的许可证需要付费。这可能会影响你,也可能不会影响你。

以下是使用5.1.2.0版本的文本提取的最基本版本:

//Full path to the file to read
string fileToRead = System.IO.Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), @"file1.pdf");
//Bind a PdfReader to our file
iTextSharp.text.pdf.PdfReader reader = new iTextSharp.text.pdf.PdfReader(fileToRead);
//Extract all of the text from the first page
string allPage1Text = iTextSharp.text.pdf.parser.PdfTextExtractor.GetTextFromPage(reader, 1);
//That's it!
Console.Write(allPage1Text);