regex - 使用正则表达式的 PDF 页数

标签 regex pdf

我使用正则表达式来计算 pdf 的页数。下面是我使用的代码。

Regex regex = new Regex(@"/Type\s*/Page[^s]");
MatchCollection matches = regex.Matches(sr.ReadToEnd());
return matches.Count;

它适用于 1.6 以下的版本,但不适用于 1.6 版的 pdf 文件。如果 pdf 版本是 1.6 则返回 0 页。

最佳答案

在您的情况下,您很可能需要处理 1.6 文档,这些文档利用了当时引入的压缩对象流功能。由于在此类文档中您搜索的信息是压缩的,因此您的正则表达式找不到它。

有一些工具可以让您在搜索文件之前解压缩文件中的此类流。不过,在您寻找它们之前,请注意您的代码结果无论如何都不可信任,因为

  • 匹配项可能多于页面,因为文件中可能有旧的、未使用的页面对象或什至其他误报,
  • 匹配项可能少于页面,因为 PDF 允许使用其他方式来编写这些类型条目。

关于regex - 使用正则表达式的 PDF 页数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30236358/

相关文章:

php - FPDF output() 以 html 扩展名保存文件

java - 无法在 itextSharp 5.5/Prop_Build 中添加签名创建器未正确渲染

c# - RegEx.Replace 替换整个单词并在部分单词时跳过

python - 如何将字符添加到正则表达式匹配字符串的开头?

javascript - 正则表达式最小值和最大值

regex - Dart RegExp,为什么会抛出 FormatException

c# - 生成 pdf 缩略图(开源/免费)

ios - 在不显示打印界面的情况下,在 Swift 中从 HTML 生成带有图像的 PDF

ios - 在 iOS 默认 pdf 阅读器上查看时,PDF4NET pdf 不显示绑定(bind)内容

javascript - 使用正则表达式\b时如何排除单词中间的非单词字符