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