从asp.net Core中的PDF中读取文本

问题描述 投票:-1回答:1

我需要阅读PDF并将其转换为.txt。我尝试将iTextSharp作为免费库使用,它可以正常运行,但不能与.NET Core完全兼容。

那是iTextSharp中的代码:

string prevPage = "";
for (int page = 5; page <= reader.NumberOfPages; page++)
{
  ITextExtractionStrategy its = new SimpleTextExtractionStrategy();
  var s = PdfTextExtractor.GetTextFromPage(reader, page, its);
  if (prevPage != s) sb.Append(s);
  prevPage = s;
}
reader.Close();

而且,我尝试了iTextSharp.LGPLv2.Core,但它的效果不如另一个,并且我也没有得到很好的结果。

所以C#.net Core中有一个不错的库可以免费读取pdf并将其转换为txt文件吗?

编辑:我想给你更多细节:我的主要范围是从PDF文件中获取文本,我不需要以某种方式设置格式的图像或表格,我将从PDF中获取文本。有了ItextSharper和PdfTextExtractor确实很容易,可能没有其他方法可以在带有类似库的.net Core中做到这一点吗?

c# pdf .net-core nuget reader
1个回答
0
投票

安装Nuget-Package GrapeCity.Documents.Pdf,这是一个跨平台的库,允许创建,修改和分析PDF文档。

在.Net Core 3.1上进行测试

static void Main(string[] args)
{

    string pdfPath1 = @"C:\Users\UserName\oexp.pdf";

    var doc = new GcPdfDocument();
    FileStream fs = new FileStream(pdfPath1, FileMode.Open, FileAccess.ReadWrite);
    doc.Load(fs);

    //To extract Page 1
    var tmap_page2 = doc.Pages[0].GetTextMap();
    tmap_page2.GetFragment(out TextMapFragment newFragment, out string Extractedtext);


    Console.WriteLine("***************************");
    Console.WriteLine("Extracted Text: \n\n" +Extractedtext);

}

您还可以使用doc.Pages.Count获取页数并枚举每页并获取其内容

© www.soinside.com 2019 - 2024. All rights reserved.