每行阅读PDF

本文关键字:PDF | 更新日期: 2023-09-27 18:17:32

如何使用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;
}

每行阅读PDF

试试这个,用LocationTextExtractionStrategy代替SimpleTextExtractionStrategy,它会在返回的文本中添加新的行字符。然后,您可以使用strText.Split(''n')将文本拆分为string[]并按每行使用。

您可以在这里找到BSD开源软件许可的PDF2Text Pilot

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

我不精通c#,但我认为在互操作性方面可能会有一些希望。

我在一家电子书阅读公司和pdf工作,我们花了很多时间和精力试图获得文本的阅读顺序,因为读者可以读给你听…弹跳点……pdf文件不需要逐行排列。书中也有很多不是的阅读顺序,包括页码、参考文献、标题、示例、多栏等。这是个难题。PDF本质上是一种打印格式。

如果你为PDF制作电子书阅读器,要么只是显示PDF是什么,就像其他PDF准备一样。或者把文本读出来,自己重新格式化。

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

相关文章:
  • 没有找到相关文章