2010-05-01 70 views
4

我有这样的代码:如何获取页码?

Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); 
object nullobj = System.Reflection.Missing.Value; 
object file = openFileDialog1.FileName; 
Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(
    ref file, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj); 
doc.ActiveWindow.Selection.WholeStory(); 
doc.ActiveWindow.Selection.Copy(); 
IDataObject data = Clipboard.GetDataObject(); 
string text = data.GetData(DataFormats.Text).ToString(); 
textBox2.Text = text; 
doc.Close(ref nullobj, ref nullobj, ref nullobj); 
app.Quit(ref nullobj, ref nullobj, ref nullobj); 

但它不返回页码。我怎样才能得到页码?

回答

6

我会说这是一个更好的解决方案

Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application(); 
object nullobj = System.Reflection.Missing.Value; 
object file = openFileDialog1.FileName; 
Microsoft.Office.Interop.Word.Document doc = app.Documents.Open(
    ref file, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj, 
    ref nullobj, ref nullobj, ref nullobj); 
doc.ActiveWindow.Selection.WholeStory(); 
doc.ActiveWindow.Selection.Copy(); 
IDataObject data = Clipboard.GetDataObject(); 

// get number of pages 
Microsoft.Office.Interop.Word.WdStatistic stat = Microsoft.Office.Interop.Word.WdStatistic.wdStatisticPages; 
int pages = doc.ComputeStatistics(stat, Type.Missing); 

string text = data.GetData(DataFormats.Text).ToString(); 
textBox2.Text = text; 
doc.Close(ref nullobj, ref nullobj, ref nullobj); 
app.Quit(ref nullobj, ref nullobj, ref nullobj); 
0

对我来说,ComputeStatistics功能会给我比页面的实际数量更高的号码,这样并没有为我工作。

我用range.get_Information()

var range = doc.Range().GoTo(WdGoToItem.wdGoToPage, WdGoToDirection.wdGoToLast); 
var numPages = range.get_Information(WdInformation.wdActiveEndPageNumber); 

第一行获取该文件的最后一页的范围。 第二行获取范围所在的页面。