我目前正尝试使用以下代码使用itextsharp从pdf文件中读取文本并分配到文本框(MultiLine) - (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文件有一个等式
我得到的只是以下输出
可以在这里添加什么来实现以下文字?真的很感激任何形式的帮助!
答案 0 :(得分:1)
我使用了itextsharp,我100%肯定它不可能。 问题属于pdf格式本身。它不包含任何引用某些文本的标签。 Pdf包含内容的特定图形表示,其在pdf页面上具有其位置。没有OCR,甚至无法检测粗体文本。 Pdf不是解析的好格式。
我的问题比你的问题更容易,从pdf上阅读是很难的。它只是文本,但在一个(2列文本)中形成为2页。 Itextsharp通过坐标读取内容,因此我的文本在读取第一列的第一行而不是第二列的第一行(而不是文本流)时混淆了。 至于乳胶,乳胶代码转换为pdf后,乳胶代码没有反转。