怎样计算WORD文档的总页数?(20分)

  • 主题发起人 主题发起人 TENTODBV
  • 开始时间 开始时间
T

TENTODBV

Unregistered / Unconfirmed
GUEST, unregistred user!
我用Delphi写的一个程序,要实现对WORD文档的操作,其中一个要实现的功能是在指定的位置插入文档的总页数。文档中我插入了一个名为bmPages的书签,用来指定插入总页数的位置。
var
i,count:integer;
Word_Handle,Doc_Handle:OleVariant;
BookMark_Name:string;
vFileName,vTemplate:olevariant;

vFilename:=ExtractFilePath(Application.ExeName)+'TEMP.doc';
try
Word_Handle:=CreateOleObject('Word.Application');
except

end;

vTemplate:=ExtractFilePath(Application.ExeName)+'Test.doc';
Word_Handle.Visible:=True;
Doc_Handle:=Word_Handle.Documents.Add(Template:=vTemplate,NewTemplate:=False);
BookMark_Name:='bmPages';
//count:=Word_Handle.BuiltInDocumentProperties(wdPropertyPages);
//count:=Word_Handle.Application.Selection.Information(wdNumberOfPagesInDocument);
//我不知道该如何计算页数count
//请教怎样可以求得页数,并保存到count
Doc_Handle.Application.Selection.goto(What:=wdGoToBookmark,Name:=BookMark_Name);
Doc_Handle.Application.Selection.TypeText(IntToStr(count));
 
问题我自己解决了。改成方括号就行了
count:=Word_Handle.Application.Selection.Information[wdNumberOfPagesInDocument];

重新问一个问题:
我操作WORD文档主要是通过先手工做好一个模版文档,在其中插入许多书签,然后在程序中打开模板文档,查找指定的书签的位置,把相应的内容插入到文档中,最后另存。由于在模版文档同一行中,可能有两处书签处要插入内容,且插入的文字数量不固定,可能很少也可能很多。当同一行中第一个书签处插入的字符数量较少的时候,需要补插入一些空格,使得同一行中后面的内容能够大致上靠右对齐,这就要计算需要补插入多少个空格了。为了省事,我就在模版文档中插入了文本框,在里面插入了一个书签,打算把前面提到的同一行里的第二个书签的内容移到文本框中。但是用上面的代码查找书签时,却提示找不到指定的书签。好像以上方法不能实现文本框中的书签。
请问怎样才可以在整个文档中查找书签,包括文本框等各种控件里的书签。
 
后退
顶部