c# - 使用 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
它是英文的,所以我不希望编码有任何问题。这个问题的原因是什么,我该如何解决?
解决方案
你不需要你正在做的转换。将代码更改为:
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);
}
推荐阅读
- android - MediaProjection 在 targetSdkVersion 29 时不起作用并关闭应用程序,但适用于 targetSdkVersion 28
- reactjs - 如何重置/清除有条件渲染的 Formik FieldArray?
- javascript - 计算对象数组中的平均值
- apache-spark - Spark JDBC读取API:动态确定日期时间类型列的分区数
- spring-boot - Spring boot:mockMvc 测试控制器:预期:实体,实际:null
- php - 我如何写一封带有 php 的电子邮件?
- powershell - 您如何使用 register-object 事件检测作业是否正确完成
- javascript - HTML 文本未正确呈现
- reactjs - 对 Spotify API 的请求返回 403
- django - python - 如何从python中的serializer.data中弹出None?