请教如何能够在word中取得页码?急!(100分)

  • 主题发起人 主题发起人 zhangfeng0710
  • 开始时间 开始时间
Z

zhangfeng0710

Unregistered / Unconfirmed
GUEST, unregistred user!
我用WordApp:=CreateOleObject('Word.Application');创建的word文档,比如说现在我想知道 ’工程施工‘这句话在文档中所处位置的当前页码,也就是他在第几页,该如何作了
(另假设 '工程施工' 在文档中有两处出现,我想知道第二处的页码)。问题特急,还望高手们拔刀相助,先谢谢啦![:)]
 
我好急呀!帮帮我吧!
 
GetDocPages : 得到文档的总页数;
GetCurrentPage : 得到当前关标所在的页码
GotoNextPage : 移到下一页开始处
GotoFirstPage : 移到第一页开始处

对于你的问题流程是:(其中WordApp : TWordApplication, WordDoc : TWordDocument)

GotoFirstPage(WordApp);
插入一些内容;
while GetCurrentPage(WordApp) < GetDocPages(WordDoc) do
begin
GotoNextPage(WordApp);
插入一些内容
end;

上面所说的几个函数代码如下:
// get the document's pages
function TForm1.GetDocPages(WrdDoc : TWordDocument) : integer;
var
ActDoc : Variant;
begin
ActDoc := CreateOleObject('Word.Document');
ActDoc := WrdDoc.DefaultInterface;
result := ActDoc.BuiltInDocumentProperties[wdPropertyPages].Value;
ActDoc := unassigned;
end;

// get current page index
function TForm1.GetCurrentPage(WrdApp : TWordApplication) : integer;
begin
result := WrdApp.Selection.Information[wdActiveEndPageNumber];
end;

// go to next page
procedure TForm1.GotoNextPage(WrdApp: TWordApplication);
begin
WrdApp.Browser.Next;
end;

// go to first page
procedure TForm1.GotoFirstPage(WrdApp: TWordApplication);
var
WdUnit,WdCount,wdExtend : OleVariant;
begin
WdUnit := wdScreen;
wdCount := 10;
wdExtend := EmptyParam;
while true do
if WrdApp.Selection.MoveUp(WdUnit,wdCount,wdExtend) = 0 then break;
end;
试试看,这样行不行??
 
谢谢app2001,我先研究一下在给分好吗?
对了不知如何能够用几句话让光标一下子移动到文档的开始位置,或定位查询时总是报错
wordapp:OleVariant;
TextRange:range;
//不知如何用wordapp(不是server组件)给TextRange副值,以至于执行下面语句总错
TextRange.Find.Execute(SearchText, EmptyParam, EmptyParam, EmptyParam,
EmptyParam, EmptyParam, Forward, Wrap,
EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
还望帮帮忙,予以解答
 
问题解决拉,现在给分!
不过还是想问一声,如何能够用几句话让光标一下子移动到文档的开始位置,就象
Wordapp.Selection.Start := Wordapp.Selection.StoryLength;把光标定位到文档最后
 
后退
顶部