每行阅读PDF

如何使用iText5 for .NET line by line阅读PDF文件? 我通过互联网搜索,但我只发现每页内容阅读PDF文件。

请看下面的代码。

 public string ReadPdfFile(object Filename) { string strText = string.Empty; try { PdfReader reader = new PdfReader((string)Filename); for (int page = 1; page <= reader.NumberOfPages; page++) { ITextExtractionStrategy its = new iTextSharp.text.pdf.parser.SimpleTextExtractionStrategy(); String s = PdfTextExtractor.GetTextFromPage(reader, page, its); s = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default, Encoding.UTF8, Encoding.Default.GetBytes(s))); strText = strText + s; } reader.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } return strText; } 

试试这个,使用LocationTextExtractionStrategy而不是SimpleTextExtractionStrategy它会为返回的文本添加新的行字符。 然后,您可以使用strText.Split(’\ n’)将文本拆分为string[]并以每行为基础使用它。

您可以在这里找到根据BSD Open-Sourse软件获得许可的PDF2Text Pilot

尽管它是用c ++编写的,但它可以作为解决问题的一个鼓舞人心的良好开端。

我不擅长C#,但我认为在互操作性方面可能会有一些希望?

我曾经为一家电子书阅读公司和PDF工作过,我们花了很多时间和精力试图获得文本的阅读顺序,因为读者可以读给你看…弹跳点…… PDF不一定要排成一行线序。 书籍也有许多不在阅读顺序的元素,包括页码,参考文献,标题,例子,多栏等。这是一个难题。 PDF基本上是一种打印格式。

如果您为PDF制作电子书阅读器,或者只显示PDF格式,与其他pdf ready一样。 或者阅读文本并重新格式化。

我更喜欢第二种方法,只是格式化文本,因为如果我使用电子书阅读器,我只关心内容,从不关心它应该是什么样子