使用正则表达式的PDF页数

时间:2015-05-14 11:35:31

标签: 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 个答案:

答案 0 :(得分:2)

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

有些工具允许您在搜索之前解压缩文件中的此类流。但是,在您查找它们之前,请注意,无论如何都不能信任您的代码结果

  • 可能会有比页面更多的匹配项,因为文件中可能存在旧的,未使用的页面对象或其他错误的正面,
  • 匹配的次数可能少于页面,因为PDF允许使用其他方式来编写这些类型的条目。