介绍一些在使用ntko正文控件的时候得到的一些经验,希望对大家以后使用正文控件的过程中提供帮助:
定义TANGER_OCX_OBJ为正文对象,remark为书签名称,text为文本内容,url为图片的url路径
1. 在书签位置加入内容:TANGER_OCX_OBJ.SetBookmarkValue("remark", "text");
2. 获得书签所在的位置:TANGER_OCX_OBJ.ActiveDocument.BookMarks("remark");
3. 在书签位置插入图片:
TANGER_OCX_OBJ.AddPicFromURL("url",
false,//是否浮动图片
0, //如果是浮动图片,相对于左边的Left 单位磅
5, //如果是浮动图片,相对于当前段落Top
1, //当前光标处
100, //无缩放
1//文字上方);
4. 获得在书签位置插入的图片:
if(TANGER_OCX_OBJ.ActiveDocument.BookMarks.Exists(remark)){//判断是否存在该书签
var picrange = TANGER_OCX_OBJ.ActiveDocument.BookMarks(remark);//获得插入图片处的书签位置
if(TANGER_OCX_OBJ.GetBookmarkValue(remark)!=null&&(TANGER_OCX_OBJ.GetBookmarkValue(picRemark)=="")){ //判读是否在该书签位置插入图片
picrange.Select(); //选中书签的位置
var selection = TANGER_OCX_OBJ.ActiveDocument.Application.Selection; //获得刚选中的书签的位置
selection.MoveRight(1,1,1);//光标拖动右移一位,相当于鼠标点中图片前,然后按shift + →,选中图片
}
}
5. 删掉4获得的图片:
if(selection.Type==7){//判断刚选中的部分类型是图片
selection.Delete(1,1);//删除
}
6. 在正文中添加批注:
var Range = TANGER_OCX_OBJ.ActiveDocument.Application.Selection.Range;//获得正文中光标圈中的区域
TANGER_OCX_OBJ.ActiveDocument.Comments.Add(Range) 为圈中的区域添加批注
7. 删除正文中的所有批注:var ActiveDocument = TANGER_OCX_OBJ.ActiveDocument;//获得当前正文
if(ActiveDocument.Comments.Count == 0){//获得批注数量
alert("没有添加批注!");
return false;
}
if(confirm("是否确认删除所有批注?")){
var strLock = TANGER_OCX_OBJ.ActiveDocument.ProtectionType;//获得正文的保护状态
if(strLock == 1){//已锁定
TANGER_OCX_OBJ.ActiveDocument.UnProtect("password");//解锁定
}
var strComments = "";
var comments = new Array();
var commentCount = ActiveDocument.Comments.Count;//获得批注数量
for(var i = 1; i <= commentCount; i++){
var comment = ActiveDocument.Comments(1);
comment.Delete();
}
}
感谢同事小白的热情贡献