使用正則表達式計算PDF文檔的頁數

 在我的一個處理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).";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章