1.首先进行XWPFDocument类的实例化,该类的实例对应一个word文档
XWPFDocument MyDoc = new XWPFDocument();
2.设置页面的大小
CT_SectPr m_SectPr = new CT_SectPr(); //实例一个尺寸类的实例
m_SectPr.pgSz.w = 16838; //设置宽度(这里是一个ulong类型)
m_SectPr.pgSz.h = 11906; //设置高度(这里是一个ulong类型)
MyDoc.Document.body.sectPr = m_SectPr; //设置页面的尺寸
上边的这一个横向的A4的页面大小,这里的单位比较特殊,用的是缇(Twip)这是一种和屏幕无关的长度单位,目的是为了让应用程序元素输出到不同设备时都能保持一致的计算方式。
换算关系:
1英寸=1440缇 1厘米=567缇 1磅=20缇 1像素=15缇
常用页面尺寸:(单位Twip)
A4(纵向):W=11906 H=16838
A4(纵向):W=16838 H=11906
A5 : W=8390 H=11906
A6 : W=5953 H=8390
如果不进行页面大小的设置,默认是纵向的A4大小。
3.创建段落
段落为XWPFParagraph类型的实例,段落由XWPFDocument实例的使用CreateParagraph()方法生成。
XWPFParagraph MyParagraph = MyDoc.CreateParagraph();
另外还有一种实例化XWPFParagraph类的创建段落的方法,效果和这个基本是一样的,但需要提供两个参数,比较麻烦。
该段落类有很多属性,用于设置与段落相关的内容。主要有以下几个方面
(1)边界相关的BorderXXXXX属性,该类属性用于获取或设置一个Borders枚举类型的值,该值用于设置边界的样式。
(2)FillBackgroundColor属性,背景填充的颜色。该属性获取或设置一个string类型的变量。该变量的含义是某个颜色的RGB值(在NPOI里所有的颜色都是以这种形式表示的)。例如设置为黑色则对应的代码如下:
MyParagraph.FillBackgroundColor = "#000000";
(3)Alignment属性,段落的对齐方式。该属性获取或设置一个ParagraphAlignment的枚举值。
(4)VerticalAlignment属性,文本垂直方向的对齐方式。该属性获取或设置一个TextAlignment 的枚举值。
(5)IndentationFirstLine属性,用于设置段落的首行缩进。该属性获取或设置一个int型变量。这个int值并不是缩进的字数,这里可以用一个函数计算缩进的距离。
//段落缩进 返回值为对应的缩进距离
//(fontname:文字类型名称 fontsize:文字大小 fontcount:缩进数目 fontstyle:文字类型(斜体、粗体...))
int Indentation(String fontname, int fontsize, int fontnum, FontStyle fontstyle)
{
Graphics gp = this.CreateGraphics();
gp.PageUnit = GraphicsUnit.Point;
SizeF size =gp.MeasureString("字", new Font(fontname,fontsize * 0.75F, fontstyle));
return (int)size.Width* fontnum * 10;
}