微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 ITextSharp TextRenderInfo.GetTextRenderMode 忽略 pdf 中的隐藏文本

如何解决使用 ITextSharp TextRenderInfo.GetTextRenderMode 忽略 pdf 中的隐藏文本

我有一系列 PDF 文件需要搜索关键字,但其中许多文件都包含大量隐藏文本。我的意思是,当你尝试 CTRL+F 来查看有多少个关键词被命名为“CJP”时,大约有 35 个结果,但实际上只有大约 9 个是实际可见的,其余的似乎都是随机隐藏的在页面上。我已经尝试了几个 API,它们都读取 35 而不是 9,所以我想在 TextRenderInfo 中尝试这个名为 ITextSharp 的类,因为方法 GetTextRenderMode 假设返回 3,如果文本是隐藏的,这意味着我可以用它来忽略不可见的字符串。

这是我当前的代码

static void Main(string[] args)
{
      Gerdau.ITextSharpCount(@"Source.pdf","CJP");
}

  public static int ITextSharpCount(string filePath,string searchString)
  {

      StringBuilder sb = new StringBuilder();
      string file = filePath;
      using (PdfReader reader = new PdfReader(file))
      {
          for (int pageNumber = 1; pageNumber <= reader.NumberOfPages; pageNumber++)
          {
              textRenderInfo.GetTextRenderMode();
              ITextExtractionStrategy strategy = new SimpleTextExtractionStrategy();
              string text = PdfTextExtractor.GetTextFromPage(reader,pageNumber,strategy);
              text = Encoding.UTF8.GetString(ASCIIEncoding.Convert(Encoding.Default,Encoding.UTF8,Encoding.Default.GetBytes(text)));
              sb.Append(text);
          }
      }
      int numberOfMatches = Regex.Matches(sb.ToString(),searchString).Count;
      return numberOfMatches;
  }

问题是我不知道如何设置 TextRenderInfo 类来检查隐藏文本。如果有人知道怎么做,那将是一个巨大的帮助,更多的代码更快乐:)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。