c# - iText 7 PDF 解析器在 C# 中返回不可读的字符
问题描述
我正在尝试使用 iText 7(最新版本)从 PDF 文件中提取文本。当我运行下面的代码时,它会从我给它的每个 PDF 中提取文本,除了来自客户端的文本(当然)。他们有一个非常古老的会计系统,PDF 文件返回不可读的文本(带问号的菱形)。
我可以将他们的 PDF 文件加载到 Adobe Reader 中,并将文本完美地复制/粘贴到记事本中。他们的 PDF 由 Ghostscript 创建,PDF 文件版本为 1.7。
我曾多次使用 iText,但从未遇到过这种情况。下面注释掉的行是我尝试查看它是否是某种编码问题。我正在使用 VS2019 使用 C# 进行编码,并通过 Nuget 安装了 iText 7。感谢您的时间!
string fileName = @"c:\users\default\desktop\test\invoice.pdf";
StringBuilder text = new StringBuilder();
if (File.Exists(fileName))
{
PdfDocument pdfReader = new PdfDocument(new PdfReader(fileName));
for (int page = 1; page <= pdfReader.GetNumberOfPages(); page++)
{
ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
String currentText = PdfTextExtractor.GetTextFromPage(pdfReader.GetPage(page), strategy);
//currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
outputtextBox.AppendText(currentText);
}
pdfReader.Close();
}
解决方案
推荐阅读
- apache-flink - Apache Flink 有状态函数 python vs java 性能
- django - 贝宝订阅 Django
- java - 限制特定字符串存储在数据库中
- typescript - Eslint --max-warnings 到 Tslint
- kubernetes - Kubespray 禁用“swapoff”命令失败,返回“非零返回码”
- c++ -
找不到标头 (C++) - c# - 创建您自己的自定义数据类型
- python - 从多索引映射到多列
- python - 属性错误:模块“pyproj”没有属性“CRS”
- python - 使用 Pyspark 将每个 json 对象读取为 Dataframe 中的单行?