新闻资讯 | 控件产品 | 技术文章 | 购物车 | 合作伙伴 | 问题解答 | 电子简报 | PDF论坛 | 资源下载
您现在的位置:技术文章>PDF开发篇 首页|PDF应用篇|PDF开发篇|解决方案

使用正则表达式计算PDF文档的页数

发布日期:2007-2-12 作者:Vicente Angotti(本站译) 出处:http://www.codeproject.com

 

在我的一个处理PDF文档的.net项目中,需要获取特定文件的页数。由于不需要对PDF本身进行任何操作,所以购买一个.net组件来完成这一工作显然很不值得。

经过几个小时的研究,我发现了一个简单的解决方法,利用正则表达是可以解决这个问题。

在记事本中打开PDF文件,我发现文件中的每一页都有一个特定的标记:"/Type /Page" (根据PDF版本的不同,在两个词之间可能带有空格)。所以,我们只需要计算这个标记在文件里出现了多少次。

首先,我们需要使用FileStream 打开pdf文件,然后使用StreamReader将文档内容作为字符串读取。

FileStream fs = new FileStream(@"c:\a.pdf", FileMode.Open, FileAccess.Read);
StreamReader r = new StreamReader(fs);
string pdfText = r.ReadToEnd();

一旦获取了pdf文本,我们需要做的就是使用正则表达式计算:"/Type /Page" 标记出现的次数。

Regex rx1 = new Regex(@"/Type\s*/Page[^s]");
MatchCollection matches = rx1.Matches(pdfText);
MessageBox.Show("The PDF file has " + matches.Count.ToString() + " page(s).";

 

发布人:管理员 【报告错误】·【推荐好友】·【打印文章】
相关评论 本文现有 1 条评论 评分人数: 0 平均分: 0
幽灵龙   2012-12-24 16:31:10
如果是pdf1.5版本的,此种方法好像就不适用了,该版本的不具有这些标签,请问有什么其它方法来计算pdf页数吗?
相关评论
用户名: 密  码:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
注意:请不要在评论中含与内容无关的广告链接,违者封ID
文章搜索
推荐文章
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
循序渐进学习iTextShar
热门点击
一个简单的PDF文件结构的分析(22340)
PHP的FDF文档支持(16147)
用C#制作PDF文件全攻略(13578)
Word转换PDF格式的C#或(12118)
pdfMaker文章:PDF加(11627)
ITextRenderer学习(11083)
PDF文件加密仿真(11036)
怎样用iReport制作Web(10383)
iText PDF概述(1)(9888)
循序渐进学习iTextShar(9833)
热门评论
从pdf文档中提取出文本(8)
PDFlib开发:创建超文本元(2)
客户端自动打印PDF(Prin(2)
浅谈PDFlib中文输出(一)(2)
xml的转换之pdf 2 ((1)
xml的转换之pdf 1 (x(1)
PDF知识讲座(1)(1)
PDFBox使用简介(1)
使用正则表达式计算PDF文档的(1)
word转pdf(1)