首页 > 解决方案 > 使用 iText7 + C# 从 pdf 读取文本,文本无法识别

问题描述

我想从 pdf 文档中读取数据。我使用 iText7:

var src = "<file location>";
var pdfDocument = new PdfDocument(new PdfReader(src));
var strategy = new LocationTextExtractionStrategy();
for (int i = 1; i <= pdfDocument.GetNumberOfPages(); ++i)
{
     var page = pdfDocument.GetPage(i);
     string text = PdfTextExtractor.GetTextFromPage(page, strategy);
     string processed = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(text)));
}
pdfDocument.Close();

它可以工作,但不能识别字母。所有文字看起来像

"����������\n��������������������������\n���������� ��������������������������\n

它是英文的,所以我不希望编码有任何问题。这个问题的原因是什么,我该如何解决?

标签: c#pdfitext

解决方案


你不需要你正在做的转换。将代码更改为:

StringBuilder processed = new StringBuilder();

    for (int i = 1; i <= pdfDocument.GetNumberOfPages(); ++i)
    {
         var page = pdfDocument.GetPage(i);
         string text = PdfTextExtractor.GetTextFromPage(page, strategy);
         processed.Append(text);
    }

推荐阅读