我使用正则表达式来计算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允许使用其他方式来编写这些类型的条目.