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

全部博文(52)

文章存档

2018年(43)

2017年(9)

我的朋友

分类: C#/.net

2018-05-21 10:38:37

脚注和尾注是对文本的补充说明。脚注一般位于页面的底部,可以作为文档某处内容的注释;尾注一般位于文档的末尾,列出引文 的出处等。在本示例中将介绍如何来添加、读取Word脚注尾注。
工具使用 Free Spire. Doc for .NET 6.3(免费版)
PS:直接下载免费版,安装之后引用安装路径下的Bin文件夹中的Spire.Doc.dll即可。

dll引用


添加Word脚注、尾注
C#
  1. using Spire.Doc;
  2. using Spire.Doc.Documents;
  3. using Spire.Doc.Fields;
  4. using System.Drawing;

  5. namespace InsertFootnote_Doc
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             //新建一个word文档对象并加载需要添加脚注尾注的word文档
  12.             Document document = new Document();
  13.             document.LoadFromFile("sample.docx", FileFormat.Docx2010);

  14.             //获取第3个段落
  15.             Paragraph paragraph = document.Sections[0].Paragraphs[2];

  16.             //添加脚注
  17.             Footnote footnote = paragraph.AppendFootnote(FootnoteType.Footnote);

  18.             //在第一段里查找指定字符串,并添加脚注
  19.             DocumentObject obj = null;

  20.             for (int i = 0; i < paragraph.ChildObjects.Count; i++)
  21.             {
  22.                 obj = paragraph.ChildObjects[i];
  23.                 if (obj.DocumentObjectType == DocumentObjectType.TextRange)
  24.                 {
  25.                     TextRange textRange = obj as TextRange;

  26.                     if (textRange.Text == "中国——东盟自贸区框架")
  27.                     {
  28.                         //为添加脚注的字符串设置加粗格式
  29.                         textRange.CharacterFormat.Bold = true;
  30.                         //插入脚注
  31.                         paragraph.ChildObjects.Insert(i + 1, footnote);
  32.                         break;
  33.                     }
  34.                 }
  35.             }

  36.             //添加脚注内容被设置字体格式
  37.             TextRange text = footnote.TextBody.AddParagraph().AppendText("2002年11月4日,朱镕基总理和东盟10国领导人共同签署了《中国-东盟全面经济合作框架协议》,这标志着中国与东盟的经贸合作进入了一个新的历史阶段。");
  38.             text.CharacterFormat.FontName = "Arial Black";
  39.             text.CharacterFormat.FontSize = 9;
  40.             text.CharacterFormat.TextColor = Color.DarkGray;
  41.             footnote.MarkerCharacterFormat.FontName = "Calibri";
  42.             footnote.MarkerCharacterFormat.FontSize = 12;
  43.             footnote.MarkerCharacterFormat.Bold = true;
  44.             footnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;


  45.             //获取第5段落
  46.             Paragraph paragraph2 = document.Sections[0].Paragraphs[4];

  47.             //添加尾注并设置尾注和格式
  48.             Footnote endnote = paragraph2.AppendFootnote(FootnoteType.Endnote);

  49.             TextRange text2 = endnote.TextBody.AddParagraph().AppendText("党的十七大报告明确指出:"
  50.                 +"“坚持对外开放的基本国策,把‘引进来’和‘走出去’更好地结合起来,"
  51.                 +"扩大开放领域,优化开放结构,提高开放质量,完善内外联动,"
  52.                 +"互利共赢、安全高效的开放型经济体系,形成经济全球化条件下参与国际经济合作和竞争的新优势。");
  53.             text2.CharacterFormat.FontName = "Arial Black";
  54.             text2.CharacterFormat.FontSize = 9;
  55.             text2.CharacterFormat.TextColor = Color.Black;
  56.             endnote.MarkerCharacterFormat.FontName = "Calibri";
  57.             endnote.MarkerCharacterFormat.FontSize = 12;
  58.             endnote.MarkerCharacterFormat.Bold = false;
  59.             endnote.MarkerCharacterFormat.TextColor = Color.DarkGreen;

  60.             //保存并打开文档
  61.             document.SaveToFile("添加脚注尾注.docx", FileFormat.Docx2010);
  62.             System.Diagnostics.Process.Start("添加脚注尾注.docx");
  63.         }
  64.     }
  65. }
添加效果

【读取Word脚注、尾注
C#

  1.             //创建Document类对象,加载需要测试的文档
  2.             Document document = new Document();
  3.             document.LoadFromFile("添加脚注尾注.docx");
  4.             //获取文档第一个section
  5.             Section section = document.Sections[0];

  6.             //实例化StringBuilder类
  7.             StringBuilder sb = new StringBuilder();

  8.             //遍历文档中所有段落
  9.             foreach (Paragraph paragraph in section.Paragraphs)
  10.             {
  11.                 for (int i = 0, cnt = paragraph.ChildObjects.Count; i < cnt; i++)
  12.                 {
  13.                     ParagraphBase pBase = paragraph.ChildObjects[i] as ParagraphBase;
  14.                     if (pBase is Footnote)
  15.                     {
  16.                         //若需要读取尾注,将此处FootnoteType.Footnote改成 FootnoteType.Endnote即可
  17.                         if ((pBase as Footnote).FootnoteType == FootnoteType.Footnote)
  18.                         {
  19.                             foreach (Paragraph footPara in (pBase as Footnote).TextBody.Paragraphs)
  20.                             {
  21.                                 sb.Append(footPara.Text);
  22.                             }
  23.                         }
  24.                     }
  25.                 }
  26.             }
  27.             //将读取内容写入文本并保存
  28.             File.WriteAllText("FootNotes.txt", sb.ToString());
  29.             //打开文档
  30.             System.Diagnostics.Process.Start("FootNotes.txt");

读取结果

1.读取脚注




2.读取尾注




控件获取地址:(官网)https://www.e-iceblue.cn/Introduce/Free-Spire-Doc-NET.html
                  (Nuget)  http://www.nuget.org/packages/FreeSpire.Doc/
阅读(160) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册