每行阅读 PDF

2023-12-14

如何阅读 PDF 文件line by line使用 iText5 for .NET? 我在互联网上搜索过,但我只找到了每页内容阅读 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[]并以每行为基础使用它。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

每行阅读 PDF 的相关文章

随机推荐

  • 日期/时间转换 ColdFusion

    我正在使用一个以 ISO 8601 格式显示日期和时间的脚本 如下所示 2012 05 17T17 35 44 000Z 但我希望在使用时以正常的 ColdFusion 时间戳格式显示 Now 符号 所以采用这种格式 ts 2012 05
  • 我如何才能对除一个程序集之外的所有程序集隐藏“setter”?

    我在中提到过这个问题我的另一个问题 但我认为值得将其分解为自己的问题 因为它并不真正依赖于我提到的其他场景 无论如何 到Q上 不知道这是否可能 寻找解决方案 解决方法 我有一个类库 除了 POCO 之外什么都没有 MyCompany MyP
  • 按下按钮,文本框中的值增加

    因此 当页面加载时 文本框将包含一个存储的值 我希望用户按下 按钮 文本框中的值将增加一 我猜这是用 JQuery 完成的 到目前为止我有关于从哪里开始的任何想法
  • 如何使用 Typescript 中的现有枚举创建超级集枚举

    我需要使用另一个枚举创建一个枚举 如下所示 enum problems eazy medium hard enum moreProblems eazy medium hard frenzy 我需要更多问题枚举使用枚举问题 用例 当枚举 B
  • 使用 Win32 C++ 访问受保护的网络共享

    有没有办法使用 Win32 C API 访问登录 密码保护的网络共享 列出文件并获取其名称和创建日期 我不希望 samba 网络共享出现在我的资源管理器中 这可以通过 WNetAddConnection2 方法来完成 谢谢大家 虽然我同意本
  • 命名空间 clr-namespace <...> 中不存在名称 <...>

    我有一个小型 WPF 应用程序 过去可以正常编译 但现在不行了 我真的不能说它在哪一点停止了建设 前一天还好好的 第二天就不行了 这是项目结构 除了标准 net dll 之外 没有其他项目或外部引用 这是问题产生的用户控件
  • 在 C# 中定义 get 或 set

    朋友们 我在 C 类中使用 get 或 set 时遇到问题 当我使用 get 或 set 时给出错误 类中的无效令牌 请参阅下面的代码 我有这个问题 static int abcd get return abcd thanx 这是完整的代码
  • 使用自动增量字段插入触发器之前/之后

    我在使用插入触发器时遇到问题 该触发器应该修复表中的列 id auto increment int thread id int NULL 我想要实现的是设置thread id to id如果它被插入为 NULL 我失败了 因为 using
  • 如何给 ImageView 赋予六边形形状

    如何赋予六边形形状ImageView 可以用同样的方式做吗 如果是这样那怎么办 如果这不可能通过此方法实现 那么如何实现呢
  • 如何让k8s cpu和内存HPA协同工作?

    我正在使用 k8s HPA 模板作为 CPU 和内存 如下所示 apiVersion autoscaling v1 kind HorizontalPodAutoscaler metadata name Chart Name cpu labe
  • 检索任意日期之前/之后最后更新的属性

    我有兴趣检索 WikiData 项目的属性 但前提是该属性是在某个日期之前或之后添加或修改的 所以我有这个SPARQL查询获取 Q24 的所有属性 SELECT itemLabel propLabel statement property
  • 是否可以在 Rust for 循环中声明变量的类型?

    C 示例 for long i 0 i lt 101 i 在 Rust 中我尝试过 for i i64 in 1 100 我可以轻松地声明一个let i i64 for循环之前的var 但我宁愿学习正确的方法来做到这一点 但这导致 erro
  • 在 JavaScript 中正确引用 ASP.NET 用户控件中的控件

    我有一个 ASP NET 用户控件 其中包含一个文本框控件和一个按钮控件 该用户控件将多次添加到我的网页中 我需要一段 JavaScript 只要文本框发生更改就会运行 并在文本框的值无效时禁用按钮 我的问题是 如何将 JavaScript
  • b 表中的 BootstrapVue 条件列

    如果当前用户是管理员 我只想显示我的专栏之一 我不知道如何使用 bootstrapVue 来做到这一点 有任何想法吗 这是基于 Troy 评论的片段 我已向名为的字段对象添加了一个自定义属性requiresAdmin 这不是标准的一部分Bo
  • 通过 bash 脚本与多个目录中的文件交互

    我生成了一个迭代多个 csv 文件的脚本 将相关文件转换为 UTF 8 bin bash cd home user prod charset text plain charset iso 8859 1 for file in csv do
  • 如何将字符串放入整数数组C++

    我有一个字符串 其中包含用户输入的内容 string userstr cout lt lt Please enter a string getline cin userstr 然后将该字符串存储在 userstr 中 然后我希望将该字符串存
  • 限制mysql中连接的行数

    因此 我想将两个表连接在一起 但对于第一个表中的每一行 我只想将其连接到另一个表中的前 8 个匹配行 并按该表中的一列排序 我可以使用任何聪明的语法 还是我需要弄乱子查询 看一下 如何在 SQL 中选择每组的第一个 最小 最大行 Secti
  • 如何将多个参数绑定到 MySQLi 准备好的语句

    我有可变数量的参数要插入 但出现错误 2031 No data supplied for parameters in prepared statement警告后Number of variables doesn t match number
  • 导入mysql数据中断,如何恢复?

    我使用导入了一个大型mysql数据库 mysql uroot ppassword dbName 数据库在处理过程中消失了 可能是由于几天后超时 有办法恢复吗 或者我运气不好 需要删除现有的数据库并重新导入 在命令行上使用 ignore 选项
  • 每行阅读 PDF

    如何阅读 PDF 文件line by line使用 iText5 for NET 我在互联网上搜索过 但我只找到了每页内容阅读 PDF 文件 请看下面的代码 public string ReadPdfFile object Filename