我目前正在尝试使用以下代码使用 itextsharp 从 pdf 文件中读取文本并分配给文本框(多行)-(Windows 桌面应用程序)
注意:这段代码工作正常。
public string ReadPdfFile(string fileName)
{
StringBuilder text = new StringBuilder();
if (File.Exists(fileName))
{
PdfReader pdfReader = new PdfReader(fileName);
for (int page = 1; page <= pdfReader.NumberOfPages; page++)
{
ITextExtractionStrategy strategy = new LocationTextExtractionStrategy();
string currentText = PdfTextExtractor.GetTextFromPage(pdfReader, page, strategy);
currentText = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(currentText)));
text.Append(currentText);
}
pdfReader.Close();
}
return text.ToString();
}
但是我的 pdf 文件有一个方程式
我得到的只是以下输出
可以在此处添加什么以实现以下文本?非常感谢任何形式的帮助!
最佳答案
我使用了 itextsharp,我 100% 确定它不可能。 问题出在pdf格式本身。它不包含引用某些文本的任何标签。 Pdf 包含在 pdf 页面上有其位置的内容的特定图形表示。如果没有 OCR,甚至无法检测到粗体文本。 PDF 不是解析的好格式。
我的问题比你的更简单,从 pdf 阅读简直是 hell 。它只是文本,但它被格式化为一个 2 页(2 列文本)。 Itextsharp 按坐标读取内容,所以当他读取第一列的第一行而不是第二列的第一行时(不是文本流),我的文本混淆了。 至于latex,latex代码转成pdf后,latex代码没有逆向。
关于c# - 使用 itextSharp 阅读数学方程式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38804864/