600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > java删除某些段落word_Java 添加 回复 修改(替换) 删除 读取Word批注

java删除某些段落word_Java 添加 回复 修改(替换) 删除 读取Word批注

时间:2023-06-06 16:50:53

相关推荐

java删除某些段落word_Java 添加 回复 修改(替换) 删除 读取Word批注

批注是一种常用于对特定文档内容进行注解的工具或方法,起到解释说明、标记指正的作用。在本篇文章中,将介绍如何操作Word批注的方法,包括:

1. 添加批注:添加文本到批注、插入图片到批注;

1.1 给指定段落添加批注

1.2 给指定字符串添加批注

2. 回复批注;

3. 修改或替换批注:用文本替换批注中的文本内容、用文本替换批注中的图片、用图片替换批注中的图片;

4. 删除批注:删除指定批注中的所有内容、删除指定批注中的指定内容

5. 读取批注

5.1 读取批注中的文本

5.2 读取批注中的图片

使用工具:Free Spire.Doc for Java (免费版)

Jar文件获取及导入:

方法1:通过官网获取jar包,并解压。解压后,将lib文件夹下的Spire.Doc.jar文件导入java程序。

方法2:通过添加maven依赖导入到maven项目,参考导入步骤。

Java示例代码

【示例1】给段落添加批注(文本、图片)importcom.spire.doc.*;

importcom.spire.doc.documents.Paragraph;

importcom.spire.ment;

publicclassAddComment{

publicstaticvoidmain(String[]args){

//加载测试文档

Documentdoc=newDocument("test.docx");

//获取指定段落

Sectionsec=doc.getSections().get(0);

Paragraphpara=sec.getParagraphs().get(3);

//插入文本到批注

Commentcomment=para.appendComment("请在试验中将包含以下特征的实验样本记录在册,并整理好周记录报表,供后续观察取样。");

comment.getFormat().setAuthor("审校组");

//插入图片到批注

comment.getBody().addParagraph().appendPicture("tp.png");

//保存文档

doc.saveToFile("AddComment.docx",FileFormat.Docx_);

}

}

批注添加效果:

【示例2】给指定字符串添加批注importcom.spire.doc.*;

importcom.spire.mentMark;

importcom.spire.mentMarkType;

importcom.spire.doc.documents.Paragraph;

importcom.spire.doc.documents.TextSelection;

importcom.spire.ment;

publicclassAddCommentToCharacters{

publicstaticvoidmain(String[]args){

//加载测试文档

Documentdoc=newDocument();

doc.loadFromFile("test.docx");

//查找指定字符串

TextSelection[]selections=doc.findAllString("皱状厚膜",true,false);

//获取关键字符串所在段落

Paragraphpara=selections[0].getAsOneRange().getOwnerParagraph();

intindex=para.getChildObjects().indexOf(selections[0].getAsOneRange());

//添加批注ID

CommentMarkstart=newCommentMark(doc);

start.setCommentId(1);

start.setType(ment_Start);

CommentMarkend=newCommentMark(doc);

end.setType(ment_End);

end.setCommentId(1);

//添加批注内容

Stringstr="给指定字符串添加批注";

Commentcomment=newComment(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_);

doc.dispose();

}

}

批注添加效果:

【示例3】回复批注importcom.spire.doc.*;

importcom.spire.ment;

publicclassReplyComment{

publicstaticvoidmain(String[]args)throwsException{

//加载测试文档

Documentdoc=newDocument("AddComment.docx");

//获取指定批注

Commentcomment=doc.getComments().get(0);

//回复批注

CommentrelyC=newComment(doc);

relyC.getFormat().setAuthor("实验组");

relyC.getBody().addParagraph().appendText("已完成。");

comment.replyToComment(relyC);

//保存文档

doc.saveToFile("ReplyComment.docx",FileFormat.Docx_);

}

}

批注回复效果:

【示例4】修改或替换批注importcom.spire.doc.*;

publicclassModifyComment{

publicstaticvoidmain(String[]args){

//加载含有批注的测试文档

Documentdoc=newDocument("sample.docx");

//获取第一个批注中的第一段,用文本替换原有批注中的文本

doc.getComments().get(0).getBody().getParagraphs().get(0).replace("请在试验中将包含以下特征的实验样本记录在册,并整理好周记录报表,供后续观察取样。","参照以下实验方法!",false,false);

//获取第一个批注中的第二段,用文本替换原有批注中的图片

doc.getComments().get(0).getBody().getParagraphs().get(1).setText("请上报管理科!");

//获取第一个批注中的第三段,删除原有图片,再调用方法添加新图片(用图片替换图片)

doc.getComments().get(0).getBody().getParagraphs().get(2).getChildObjects().removeAt(0);

doc.getComments().get(0).getBody().getParagraphs().get(2).appendPicture("2.png");

//保存文档

doc.saveToFile("ModifyComment.docx",FileFormat.Docx_);

}

}

修改或替换结果:

【示例5】删除批注importcom.spire.doc.*;

importcom.spire.doc.FileFormat;

publicclassDeleteComment{

publicstaticvoidmain(String[]args){

//加载测试文档

Documentdoc=newDocument("AddComment.docx");

//调用方法删除指定批注(删除批注中的所有内容)

doc.getComments().removeAt(0);

//删除指定批注中的指定段落(删除批注中的部分内容)

doc.getComments().get(0).getBody().getParagraphs().get(1).getChildObjects().removeAt(0);

//保存文档

doc.saveToFile("DeleteComment",FileFormat.Docx_);

}

}

批注删除效果:

【示例6】读取批注中的文本importcom.spire.doc.*;

importcom.spire.doc.documents.Paragraph;

importcom.spire.ment;

importcom.spire.doc.fields.TextRange;

publicclassReadComment{

publicstaticvoidmain(String[]args){

//加载测试文档

Documentdoc=newDocument();

doc.loadFromFile("测试文档.docx");

//实例化String类型变量

Stringtext="";

/*//获取指定批注中的文本

Commentcomment=doc.getComments().get(0);

Paragraphparagraph=comment.getBody().getParagraphs().get(0);

for(Objectobj:paragraph.getChildObjects()){

if(objinstanceofTextRange){

TextRangetextRange=(TextRange)obj;

text=text+textRange.getText();

}

}*/

//遍历所有批注

for(inti=0;i

Commentcomment=doc.getComments().get(i);

//遍历所有批注中的段落

for(intj=0;j

Paragraphparagraph=comment.getBody().getParagraphs().get(j);

//遍历段落中的对象

for(Objectobject:paragraph.getChildObjects()){

//读取文本

if(objectinstanceofTextRange){

TextRangetextRange=(TextRange)object;

text=text+textRange.getText();

}

}

}

}

//输入文本内容

System.out.println(text);

}

}

批注文本读取结果:

【示例7】读取批注中的图片importcom.spire.doc.*;

importcom.spire.doc.documents.Paragraph;

importcom.spire.ment;

importcom.spire.doc.fields.DocPicture;

importjavax.imageio.ImageIO;

importjava.awt.image.RenderedImage;

importjava.io.File;

importjava.io.IOException;

importjava.util.ArrayList;

publicclassExtractImgsInComment{

publicstaticvoidmain(String[]args)throwsIOException{

//加载测试文档

Documentdoc=newDocument();

doc.loadFromFile("AddComment.docx");

//创建ArrayList数组对象

ArrayListimages=newArrayList();

//遍历所有批注

for(inti=0;i

Commentcomment=doc.getComments().get(i);

//遍历所有批注中的段落

for(intj=0;j

Paragraphparagraph=comment.getBody().getParagraphs().get(j);

//遍历段落中的对象

for(Objectobject:paragraph.getChildObjects()){

//获取图片对象

if(objectinstanceofDocPicture){

DocPicturepicture=(DocPicture)object;

images.add(picture.getImage());

}

}

}

}

//提取图片,并指定图片格式

for(intz=0;z

Filefile=newFile(String.format("图片-%d.png",z));

ImageIO.write((RenderedImage)images.get(z),"PNG",file);

}

}

}

批注图片读取结果:

(本文完)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。