欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

NPOI处理Word文本中上下角标

程序员文章站 2022-05-25 15:42:31
读取Word文档,并将文本转成html标签,后面发现,经常有带上下角标的内容,于是一并处理了。 核心在于对XWPFRun对象中Subscript属性的处理。 Word文档: 输出:

测试ok。

CO2

读取word文档,并将文本转成html标签,后面发现,经常有带上下角标的内容,于是一并处理了。

核心在于对xwpfrun对象中subscript属性的处理。

 1         /// <summary>
 2         /// 读取word,并识别文本中的上下角标
 3         /// </summary>
 4         /// <param name="filename"></param>
 5         /// <returns></returns>
 6         public static string readwordtextexwithsubscript(string filename)
 7         {
 8 
 9             string filetext = string.empty;
10             stringbuilder sbfiletext = new stringbuilder();
11 
12             #region 打开文档
13             xwpfdocument document = null;
14             try
15             {
16                 using (filestream file = new filestream(filename, filemode.open, fileaccess.read))
17                 {
18                     document = new xwpfdocument(file);
19                 }
20             }
21             catch (exception e)
22             {
23                 throw e;
24             }
25             #endregion
26             //正文段落
27             foreach (xwpfparagraph paragraph in document.paragraphs)
28             {
29                 //获取段楼中的句列表
30                 ilist<xwpfrun> runslists = paragraph.runs;
31 
32                 sbfiletext.append("<p>");
33                 foreach (xwpfrun run in runslists)
34                 {
35                     switch (run.subscript)
36                     {
37                         case verticalalign.baseline:
38                             sbfiletext.append(run.text);
39                             break;
40                         //上角标
41                         case verticalalign.superscript:
42                             sbfiletext.append("<sup>" + run.text + "</sup>");
43                             break;
44                         //下角标
45                         case verticalalign.subscript:
46                             sbfiletext.append("<sub>" + run.text + "</sub>");
47                             break;
48                         default:
49                             sbfiletext.append(run.text);
50                             break;
51                     }
52                     
53                 }
54                 sbfiletext.appendline("</p>");
55             }
56             filetext = sbfiletext.tostring();
57 
58             return filetext;
59         }

word文档:

NPOI处理Word文本中上下角标

输出:

<p>测试<sup>上</sup><sub>下</sub>ok。</p>
<p>co<sub>2</sub></p>
<p>面积约6000km<sup>2</sup></p>

html预览:

NPOI处理Word文本中上下角标