1. 首页
  2. IT资讯

Java 添加、读取、删除Word脚注/尾注

Word中的脚注和尾注都是对文本的补充说明。脚注一般是附在书页最左下端的注文,用以解释、说明特定内容;而尾注则是位于文档末尾,用于列出引文的出处。脚注和尾注都可以是针对某些文字或者段落来添加。本文中,将通过java演示如何添加脚注及尾注到Word文档以及读取、删除Word中已有的脚注尾注。

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

Jar文件获取及导入:

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

方法 2 通过maven仓库 导入

【示例1】添加脚注、尾注

 import com.spire.doc.*;   import com.spire.doc.documents.Paragraph;   import com.spire.doc.documents.TextSelection;   import com.spire.doc.fields.Footnote;   import com.spire.doc.fields.TextRange;      import java.awt.*;      public class AddFootnoteEndnote {       public static void main(String[] args){           //加载测试文档           Document doc = new Document("test.doc");              //添加脚注1:给指定段落添加脚注           Paragraph para1 = doc.getSections().get(0).getParagraphs().get(2);//获取段落           Footnote footnote1 = para1.appendFootnote(FootnoteType.Footnote);//添加脚注           TextRange text1 = footnote1.getTextBody().addParagraph().appendText("详见附件内容");           text1.getCharacterFormat().setFontName("楷书");//格式化脚注标签及脚注内容           text1.getCharacterFormat().setFontSize(10);           text1.getCharacterFormat().setTextColor(new Color(255, 140, 0));           footnote1.getMarkerCharacterFormat().setFontName("楷书");           footnote1.getMarkerCharacterFormat().setFontSize(14);           footnote1.getMarkerCharacterFormat().setTextColor(new Color(0, 0, 139));              //添加脚注2:给指定文本添加脚注           TextSelection[] selections = doc.findAllString("消除缺陷", false, true);           for (TextSelection selection : selections) {               TextRange range = selection.getAsOneRange();               Paragraph para2 = range.getOwnerParagraph();               Footnote footnote2 = para2.appendFootnote(FootnoteType.Footnote);               int index = para2.getChildObjects().indexOf(range);               para2.getChildObjects().insert(index + 1, footnote2);               TextRange text2 = footnote2.getTextBody().addParagraph().appendText("请查看操作手册");               text2.getCharacterFormat().setFontName("Arial Black");               text2.getCharacterFormat().setFontSize(10);               text2.getCharacterFormat().setTextColor(new Color(153, 50, 204));               footnote2.getMarkerCharacterFormat().setFontName("Calibri");               footnote2.getMarkerCharacterFormat().setFontSize(14);               footnote2.getMarkerCharacterFormat().setTextColor(new Color(0, 0, 139));               //添加尾注:给指定段落添加尾注(给指定文本添加尾注可参考以上添加脚注的代码方法)            Paragraph para3 = doc.getSections().get(0).getParagraphs().get(15);            Footnote endnote= para3.appendFootnote(FootnoteType.Endnote);            TextRange text3 = endnote.getTextBody().addParagraph().appendText("引用自刘玲《操作手册》");            text3.getCharacterFormat().setFontName("Arial Black");            text3.getCharacterFormat().setFontSize(10);            text3.getCharacterFormat().setTextColor(new Color(135, 206, 204));            endnote.getMarkerCharacterFormat().setFontName("Calibri");            endnote.getMarkerCharacterFormat().setFontSize(14);            endnote.getMarkerCharacterFormat().setTextColor(new Color(0, 0, 139));               //保存文档            doc.saveToFile("result.docx",FileFormat.Docx_2010);           }       }   }

脚注添加效果:

Java 添加、读取、删除Word脚注/尾注

尾注添加效果:

Java 添加、读取、删除Word脚注/尾注

【示例2】读取Word脚注、尾注

以上文中生成的脚注、尾注为测试文档。

1. 读取Word脚注

 import com.spire.doc.*;   import com.spire.doc.documents.Paragraph;   import com.spire.doc.fields.Footnote;   import com.spire.doc.fields.TextRange;      import java.util.List;      public class ExtractFootnoteAndEndnote {       public static void main(String[] args) {           //创建Document实例           Document doc = new Document();           doc.loadFromFile("result.docx");              //获取文档中的所有脚注          List<Footnote> footNotes = doc.getFootnotes();             //实例化String类型变量          String str = "";             //遍历脚注           for (Footnote footNote :footNotes) {               //遍历脚注中的段落               for (int j = 0; j < footNote.getTextBody().getParagraphs().getCount(); j++) {                   Paragraph paragraph = footNote.getTextBody().getParagraphs().get(j);                   //遍历段落中的对象                  for(Object object : paragraph.getChildObjects()){                      //读取文本                      if (object instanceof TextRange) {                          TextRange textRange = (TextRange) object;                          str = str + textRange.getText();                      }                  }                  }           }           //输出脚注文本           System.out.println(str);       }   }

脚注读取结果:

Java 添加、读取、删除Word脚注/尾注

2. 读取Word尾注

 import com.spire.doc.*;   import com.spire.doc.documents.Paragraph;   import com.spire.doc.fields.Footnote;   import com.spire.doc.fields.TextRange;      import java.util.List;      public class ExtractFootnoteAndEndnote {       public static void main(String[] args) {           //创建Document实例           Document doc = new Document();           doc.loadFromFile("result.docx");             //获取所有尾注           List<Footnote> endNotes = doc.getEndnotes();           //实例化String类型变量           String str = "";              //遍历尾注           for (Footnote endnote :endNotes) {               //遍历尾注中的段落               for (int j = 0; j < endnote.getTextBody().getParagraphs().getCount(); j++) {                   Paragraph paragraph = endnote.getTextBody().getParagraphs().get(j);                   //遍历段落中的对象                   for(Object object : paragraph.getChildObjects()){                       //读取文本                       if (object instanceof TextRange) {                           TextRange textRange = (TextRange) object;                           str = str + textRange.getText();                       }                   }                  }           }           //输出尾注文本           System.out.println(str);       }   }

尾注读取结果:

【示例3】删除Word脚注、尾注

import com.spire.doc.*;  import com.spire.doc.documents.Paragraph;  import com.spire.doc.fields.Footnote;  import java.util.List;  public class DeleteFootnoteAndEndnote {      public static void main(String[] args) {          //加载测试文档          Document doc = new Document();          doc.loadFromFile("result.docx");          //获取第一个section          Section section = doc.getSections().get(0);          //遍历所有段落中的子对象          for(int i =0; i<section.getParagraphs().getCount();i++){              Paragraph para = section.getParagraphs().get(i);              for(int j = 0; j<para.getChildObjects().getCount();j++){                  DocumentObject object = para.getChildObjects().get(j);                  //删除脚注尾注                      if(object instanceof Footnote){                          para.getChildObjects().remove(object);                      }              }          }          //保存文档          doc.saveToFile("Removefootnote.docx", FileFormat.Docx);          doc.dispose();      }  }

运行程序后,生成的文档将不再有脚注、尾注。

(本文完)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31499788/viewspace-2664814/,如需转载,请注明出处,否则将追究法律责任。

主题测试文章,只做测试使用。发布者:深沉的少年,转转请注明出处:http://www.cxybcw.com/184555.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code