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

使用iText7 C#区分PDF文件中的空白页VS X-Cross页面

如何解决使用iText7 C#区分PDF文件中的空白页VS X-Cross页面

我正在使用 IText7 将一个 PDF 文档拆分为多个 PDF 文档。例如,我有一个包含多个页面组合的 PDF 文档。

  • 第 1 页 - 带有 X 十字符号的页面
  • 第 2 页 - 空白页
  • 第 3 页 - 带文本的页面
  • 第 4 页 - 带有 X 十字符号的页面
  • 第 5 页 - 空白页
  • 第 6 页 - 带文本的页面
  • 第 7 页 - 带有 X 十字符号的页面

当我尝试阅读页面详细信息的文本时,第 1 页和第 2 页都将文本返回为空。

我的问题是:如何确定空白页和带有 X-Cross 符号的页面?任何帮助将不胜感激。

解决方法

您在评论中解释了 X 十字符号实际上是一个位图图像。因此,要检查页面上是否有这样的符号,您必须应用位图图像提取,而不是文本提取。有很多关于堆栈溢出时位图图像提取的问题和答案,例如 this answer 由 iText 7 开发团队的 Alexey Subach 撰写。

如果幸运的话,空白页确实是空白(并且不包含例如纯白色或纯透明的位图图像)。在这种情况下,您只需要检查页面是否有 (a) 任何文本(您已经检查过)以及它是否有 (b) 任何位图:

  • 如果两者都没有,则为空白页
  • 如果它只有一个图像,它是一个带有 X-Cross 符号的页面
  • 如果它有文本,它就是一个带有文本的页面

如果事情更复杂,你必须更仔细地看,例如分析在页面上找到的位图。如果所有这些 X-Cross 符号位图都相同,例如,您可以将找到的位图图像与您首先提取的示例图像进行比较。

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