Java 操作Word书签(三):用文本、图片、表格替换书签
本篇文章将继续介绍通过Java来操作Word书签的方法,即替换Word中已有书签,包括用新的文本、图片、表格等替换原有书签处的内容。
使用工具:Free Spire.Doc for Java (免费版)
Jar文件获取及导入:
方法1:通过官网下载jar文件包。下载后,解压文件。并将lib文件夹下的Spire.Doc.jar文件导入到java程序。参考如下导入效果:
方法2:可通过maven仓库安装导入。可参考安装导入方法。
Java代码示例
【示例1】用文本替换书签
import com.spire.doc.*; import com.spire.doc.documents.BookmarksNavigator; public class ReplaceBookmarkContentWithNewContent { public static void main(String[]args){ //加载包含书签的Word文档 Document doc = new Document(); doc.loadFromFile("test.docx"); //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc); bookmarksNavigator.moveToBookmark("bookmark1"); //用文本内容替换原有书签位置的文本,新替换的内容与原文格式一致 bookmarksNavigator.replaceBookmarkContent("新文本内容!",true); //保存文档 doc.saveToFile("replaceWithNewContent.docx",FileFormat.Docx_2013); doc.dispose(); } }
替换效果:
【示例2】用图片替换书签
import com.spire.doc.*; import com.spire.doc.documents.BookmarksNavigator; import com.spire.doc.documents.Paragraph; import com.spire.doc.documents.TextBodyPart; public class ReplaceBookmarkWithImg { public static void main(String[]args){ //加载包含书签的文档 Document doc = new Document(); doc.loadFromFile("test.docx"); //定位到指定书签位置 BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc); bookmarksNavigator.moveToBookmark("bookmark1"); //添加图片,替换原有书签内容 Paragraph para= new Paragraph(doc); para.appendPicture("eth.png"); TextBodyPart bodyPart = new TextBodyPart(doc); bodyPart.getBodyItems().add(para); bookmarksNavigator.replaceBookmarkContent(bodyPart); //保存文档 doc.saveToFile("replaceWithImg.docx",FileFormat.Docx_2013); doc.dispose(); } }
替换效果:
【示例3】用表格替换书签
import com.spire.doc.*; import com.spire.doc.documents.*; import com.spire.doc.fields.TextRange; public class ReplaceBookmarkContentWithTable { public static void main(String[]args){ //加载包含书签的Word文档 Document doc = new Document(); doc.loadFromFile("test.docx"); //声明数组内容 String[][] data = { new String[]{"分类", "等级", "编号"}, new String[]{"A", "一级", "01A"}, new String[]{"B", "二级", "02B"}, new String[]{"C", "三级", "03C"}, }; //创建表格 Table table = new Table(doc, true); table.resetCells(4, 3); for (int i = 0; i < data.length; i++) { TableRow dataRow = table.getRows().get(i); for (int j = 0; j < data[i].length; j++) { TextRange range = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]); range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center); range.getCharacterFormat().setFontName("楷体"); dataRow.getRowFormat().setHorizontalAlignment(RowAlignment.Center); dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle); } } //创建TextBodyPart对象 TextBodyPart bodyPart= new TextBodyPart(doc); bodyPart.getBodyItems().add(table); //定位到指定书签位置 BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc); bookmarkNavigator.moveToBookmark("bookmark1"); //使用表格替换原书签的内容 bookmarkNavigator.replaceBookmarkContent(bodyPart); //保存文档 doc.saveToFile("replaceWithTable.docx", FileFormat.Docx); doc.dispose(); } }
替换效果:
转自: