本文將介紹在Java程序中如何給Word文檔中的指定字符串添加批注。前文中,主要介紹的是針對某個段落來添加批注,以及回復、編輯、刪除批注的方法,如果需要針對特定關鍵詞或指定字符串來設置批注,可以參考本文的方法。
使用工具:Free Spire.Doc for Java (免費版)
獲取方法1:通過官網下載,並導入Spire.Doc.jar文件至java程序。
Java代碼示例
import com.spire.doc.*; import com.spire.doc.documents.CommentMark; import com.spire.doc.documents.CommentMarkType; import com.spire.doc.documents.Paragraph; import com.spire.doc.documents.TextSelection; import com.spire.doc.fields.Comment; public class AddCommentToCharacters { public static void main(String[] args) { //加載測試文檔 Document doc = new Document(); doc.loadFromFile("test.docx"); //查找指定字符串 TextSelection[] selections = doc.findAllString("皺狀厚膜", true, false); //獲取關鍵字符串所在段落 Paragraph para = selections[0].getAsOneRange().getOwnerParagraph(); int index = para.getChildObjects().indexOf(selections[0].getAsOneRange()); //添加批注ID CommentMark start = new CommentMark(doc); start.setCommentId(1); start.setType(CommentMarkType.Comment_Start); CommentMark end = new CommentMark(doc); end.setType(CommentMarkType.Comment_End); end.setCommentId(1); //添加批注內容 String str = "給指定字符串添加批注"; Comment comment = new Comment(doc); comment.getFormat().setCommentId(1); comment.getBody().addParagraph().appendText(str); comment.getFormat().setAuthor("作者:"); comment.getFormat().setInitial("CM"); para.getChildObjects().insert(index, start); para.getChildObjects().insert(index + 1, selections[0].getAsOneRange()); para.getChildObjects().insert(index + 2,end); para.getChildObjects().insert(index + 3, comment); //保存文檔 doc.saveToFile("字符串批注.docx",FileFormat.Docx_2013); doc.dispose(); } }
批注添加效果:
(本文完)