如何使用iText5 for .NET读取PDF文件line by line
?
我通过互联网搜索,但我只发现每页内容阅读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;
}
答案 0 :(得分:5)
试试这个,使用LocationTextExtractionStrategy
而不是SimpleTextExtractionStrategy
,它会在返回的文本中添加换行符。然后,您可以使用strText.Split('\ n')将文本拆分为string[]
并按行进行消费。
答案 1 :(得分:3)
您可以在BSD Open-Sourse软件下找到{strong> PDF2Text Pilot here。
尽管它是用c ++编写的,但它可以作为解决问题的良好开端。
我不熟练使用C#,但我认为互操作性方面可能会有一些希望?
答案 2 :(得分:3)
我曾在一家电子书阅读公司和PDF工作过,我们花费了大量的时间和精力来尝试获取文本的阅读顺序,因为读者可以读给你听...弹跳点。 .. PDF不必逐行排列。书籍在阅读顺序中也有许多不的元素,包括页码,参考文献,标题,例子,多栏等。这是一个难题。 PDF基本上是一种打印格式。
答案 3 :(得分:2)
如果您为PDF制作电子书阅读器,或者只显示PDF格式,与其他pdf ready一样。或者阅读文本并重新格式化。
我更喜欢第二种方法,只是格式化文本,因为如果我使用电子书阅读器,我只关心内容而不关心它应该是什么样的