xml地图|网站地图|网站标签 [设为首页] [加入收藏]

NPOI处理Word文本中上下角标

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

1,         转义字符

核心在于对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         }

XHTML不直接输入符号,建议使用转义字符。

Word文档:

          ------空格;

必威 1

         ©------版权;

输出:

         ®--------注册商标

<p>测试<sup>上</sup><sub>下</sub>ok。</p>
必威,<p>CO<sub>2</sub></p>
<p>面积约6000km<sup>2</sup></p>

         如果输入连续的空格要使用&的转义字符&(&)nbsp,即&nbsp;

Html预览:

 

必威 2

2,         水平线

 

<Hr> 水平线

<hr  width="500px" align="left" color=”red” size=”1” >

 

Width: 长度

Align:对齐方式

Color:颜色

Size:粗细

 

3,         上下标

<sub>下标</sub>

<sup>上标</sub>

x1=y2

<p>x<sub>1</sub>=y<sub>2</sub></p><br/>

x1+y2=y2

<p>x<sup>1</sup>+y<sup>2</sup>=y<sub>2</sub></p>

 

4,         标题

标题从1到6,h1-h6;

<h1>教学时间H1</h1>

<h2>教学时间H2</h2>

<h3>教学时间H3</h3>

<h4>教学时间H4</h4>

<h5>教学时间H5</h5>

 <h6>教学时间H6</h6>

 

5,         预格式文本

预格式文本:<pre>对空格和空行进行控制</pre>

<p>           lalala            </p>

<pre><p>             lalalla              </p></pre>

 

6,         单标记

非封闭类型标记又叫做空标记或者单标记<标记/>或者<标记>,在HTML4和HTML5中无区别,但是在XHTML中要求所有的单标签必须封闭。

 

7,         重要思想

HTML结构与样式相分离,有关样式全部写在css中。

 必威 3

 

本文由必威发布于编程,转载请注明出处:NPOI处理Word文本中上下角标