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();
     }
 }

替换效果:


(本文完)



请使用浏览器的分享功能分享到微信等