在使用Word时,如果内容过多有时为了快速定位到内容的某一处或某一部分怎会在该处添加书签。Word中的书签可以通过工具栏手动添加或删除,其实也可以自己变成实现在当前光标处插入书签,或根据书签名称删除某个书签。

通过后台程序在当前光标处添加书签的具体步骤如下:

第一步:请先安装PageOffice的服务器端的安装程序,之后在你的网站中根目录下添加pageoffice文件夹(在PageOffice官方网站的“下载中心”中可下载相应的压缩包,解压之后直接将pageoffice文件夹拷贝到根目录下就可以了)。

第二步:在网站中创建页面WordAddBKMK.aspx

先在工具箱中拖动一个PageOfficeCtrl控件到页面上(PageOfficeCtrl控件位于工具箱最下方),并设置控件所在层(<div></div>)的高和宽。

再在该页面中添加两个文本框,用于输入书签名称和书签文本内容,部分如下:

插入书签时,请先输入要插入的书签名称和文本;删除书签时,请先输入相应的书签名称!<asp:LabelID="Label1"runat="server"Text="书签名称:"></asp:Label>

<inputid="txtBkName"type="text"value="test"/>

<asp:LabelID="Label2"runat="server"Text="书签文本:"></asp:Label>

<inputid="txtBkText"type="text"value="[测试]"/>

第三步:WordAddBKMK.aspx.cs后台编写代码。打开Word文件,部分代码如下:

//设置服务器页面

PageOfficeCtrl1.ServerPage = "pageoffice/server.aspx";

   PageOfficeCtrl1.AddCustomToolButton("插入书签", "addBookMark()",7);

PageOfficeCtrl1.AddCustomToolButton("删除书签", "delBookMark()",7);

//打开文件

PageOfficeCtrl1.WebOpen("doc/template.doc",PageOffice.OpenModeType.docNormalEdit, "张佚名");

然后在WordAddBKMK.aspx添加JS函数,代码如下:

var range;

function addBookMark()

   {

var obj = document.getElementById("PageOfficeCtrl1").Document;

var bkName = document.getElementById("txtBkName").value;

var bkText = document.getElementById("txtBkText").value;

       range =obj.Application.Selection.Range;

       range.Text = bkText;

       obj.Bookmarks.Add(bkName,  range);

       obj.Bookmarks(bkName).Select();

}


function delBookMark()

   {

var bkName = document.getElementById("txtBkName").value;

var obj = document.getElementById("PageOfficeCtrl1").Document;

       range =obj.Application.Selection.Range;

if(obj.Bookmarks.Exists(bkName)){

           obj.Bookmarks(bkName).Select();

          obj.Application.Selection.Range.Text = "";

       }

}

如上所述,即可用自己的程序实现添加删除Word中的书签了。