Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1613459
  • 博文数量: 95
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 941
  • 用 户 组: 普通用户
  • 注册时间: 2017-10-27 10:00
  • 认证徽章:
文章分类

全部博文(95)

文章存档

2019年(41)

2018年(45)

2017年(9)

我的朋友

分类: Java

2019-08-21 09:35:31

本篇文章将继续介绍通过Java来操作Word书签的方法,即替换Word中已有书签,包括用新的文本、图片、表格等替换原有书签处的内容。


使用工具:Free Spire.Doc for Java

Jar文件获取及导入:

方法1通过官网下载jar文件包。下载后,解压文件。并将lib文件夹下的Spire.Doc.jar文件导入到java程序。参考如下导入效果:


方法2可通过maven仓库安装导入。可参考安装导入方法


Java代码示例

【示例1】用文本替换书签

  1. import com.spire.doc.*;
  2. import com.spire.doc.documents.BookmarksNavigator;

  3. public class ReplaceBookmarkContentWithNewContent {
  4.     public static void main(String[]args){
  5.         //加载包含书签的Word文档
  6.         Document doc = new Document();
  7.         doc.loadFromFile("test.docx");

  8.         //定位到指定书签位置
  9.         BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
  10.         bookmarksNavigator.moveToBookmark("bookmark1");

  11.         //用文本内容替换原有书签位置的文本,新替换的内容与原文格式一致
  12.         bookmarksNavigator.replaceBookmarkContent("新文本内容!",true);


  13.         //保存文档
  14.         doc.saveToFile("replaceWithNewContent.docx",FileFormat.Docx_2013);
  15.         doc.dispose();
  16.     }
  17. }

替换效果:



【示例
2】用图片替换书签

  1. import com.spire.doc.*;
  2. import com.spire.doc.documents.BookmarksNavigator;
  3. import com.spire.doc.documents.Paragraph;
  4. import com.spire.doc.documents.TextBodyPart;

  5. public class ReplaceBookmarkWithImg {
  6.     public static void main(String[]args){
  7.         //加载包含书签的文档
  8.         Document doc = new Document();
  9.         doc.loadFromFile("test.docx");

  10.         //定位到指定书签位置
  11.         BookmarksNavigator bookmarksNavigator = new BookmarksNavigator(doc);
  12.         bookmarksNavigator.moveToBookmark("bookmark1");

  13.         //添加图片,替换原有书签内容
  14.         Paragraph para= new Paragraph(doc);
  15.         para.appendPicture("eth.png");
  16.         TextBodyPart bodyPart = new TextBodyPart(doc);
  17.         bodyPart.getBodyItems().add(para);
  18.         bookmarksNavigator.replaceBookmarkContent(bodyPart);

  19.         //保存文档
  20.         doc.saveToFile("replaceWithImg.docx",FileFormat.Docx_2013);
  21.         doc.dispose();
  22.     }
  23. }

替换效果:



【示例3】用表格替换书签
  1. import com.spire.doc.*;
  2. import com.spire.doc.documents.*;
  3. import com.spire.doc.fields.TextRange;

  4. public class ReplaceBookmarkContentWithTable {
  5.     public static void main(String[]args){
  6.         //加载包含书签的Word文档
  7.         Document doc = new Document();
  8.         doc.loadFromFile("test.docx");

  9.         //声明数组内容
  10.         String[][] data =
  11.                 {
  12.                         new String[]{"分类", "等级", "编号"},
  13.                         new String[]{"A", "一级", "01A"},
  14.                         new String[]{"B", "二级", "02B"},
  15.                         new String[]{"C", "三级", "03C"},
  16.                 };

  17.         //创建表格
  18.         Table table = new Table(doc, true);
  19.         table.resetCells(4, 3);
  20.         for (int i = 0; i < data.length; i++) {
  21.             TableRow dataRow = table.getRows().get(i);
  22.             for (int j = 0; j < data[i].length; j++) {
  23.                 TextRange range = dataRow.getCells().get(j).addParagraph().appendText(data[i][j]);
  24.                 range.getOwnerParagraph().getFormat().setHorizontalAlignment(HorizontalAlignment.Center);
  25.                 range.getCharacterFormat().setFontName("楷体");
  26.                 dataRow.getRowFormat().setHorizontalAlignment(RowAlignment.Center);
  27.                 dataRow.getCells().get(j).getCellFormat().setVerticalAlignment(VerticalAlignment.Middle);
  28.             }
  29.         }

  30.         //创建TextBodyPart对象
  31.         TextBodyPart bodyPart= new TextBodyPart(doc);
  32.         bodyPart.getBodyItems().add(table);

  33.         //定位到指定书签位置
  34.         BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(doc);
  35.         bookmarkNavigator.moveToBookmark("bookmark1");

  36.         //使用表格替换原书签的内容
  37.         bookmarkNavigator.replaceBookmarkContent(bodyPart);

  38.         //保存文档
  39.         doc.saveToFile("replaceWithTable.docx", FileFormat.Docx);
  40.         doc.dispose();
  41.     }
  42. }

替换效果:



相关阅读:


(本文完)
阅读(118) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册