TX TextControl产品支持丰富的文档样式编辑功能,比如:字体样式,段落样式,节样式,分栏,插入图片,表格等,本文主要是文档中插入页号的实现方法,代码如下:
private void Form1_Load(object sender, EventArgs e){InsertPageNumber(HeaderFooterType.Footer);}/// <summary>
/// 在当前节中插入页号
/// </summary>
/// <param name="headerFooterType">仅限于页眉和页脚</param>
private void InsertPageNumber(HeaderFooterType headerFooterType){HeaderFooter hdrFtr = null;
try
{// 获取当前节
var sect = textControl1.Sections.GetItem();if (sect == null) return;switch (headerFooterType)
{case HeaderFooterType.Header:
// 如果页眉不存在,创建页眉
if (!HeaderExists()) sect.HeadersAndFooters.Add(headerFooterType);
if ((sect.Start == textControl1.InputPosition.Page)
&& (sect.HeadersAndFooters.GetItem(HeaderFooterType.FirstPageHeader) != null))
{headerFooterType = HeaderFooterType.FirstPageHeader;}hdrFtr = sect.HeadersAndFooters.GetItem(headerFooterType);break;
case HeaderFooterType.Footer:
// 如果页脚不存在,创建页脚
if (!FooterExists()) sect.HeadersAndFooters.Add(headerFooterType);
if ((sect.Start == textControl1.InputPosition.Page)
&& (sect.HeadersAndFooters.GetItem(HeaderFooterType.FirstPageFooter) != null))
{headerFooterType = HeaderFooterType.FirstPageFooter;}hdrFtr = sect.HeadersAndFooters.GetItem(headerFooterType);break;
}if (hdrFtr == null) return;// 如果页眉/页脚已经包含页号则直接退出
if (hdrFtr.PageNumberFields.Count > 0) return;var pgNumFld = new PageNumberField
{StartNumber = 1,Editable = false,
DoubledInputPosition = true,
ShowActivated = true,
};hdrFtr.PageNumberFields.Add(pgNumFld);}catch (Exception ex)
{MessageBox.Show(ex.Message, ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);return;
}}private bool HeaderExists(){if (textControl1 == null) return false;try
{return ((textControl1.Sections.GetItem().HeadersAndFooters.GetItem(TXTextControl.HeaderFooterType.Header) != null)|| (textControl1.Sections.GetItem().HeadersAndFooters.GetItem(TXTextControl.HeaderFooterType.FirstPageHeader) != null));
}catch { }
return false;}private bool FooterExists(){if (textControl1 == null) return false;try
{return ((textControl1.Sections.GetItem().HeadersAndFooters.GetItem(TXTextControl.HeaderFooterType.Footer) != null)|| (textControl1.Sections.GetItem().HeadersAndFooters.GetItem(TXTextControl.HeaderFooterType.FirstPageFooter) != null));
}catch { }
return false;}
源码下载:VS2010 + TX X9