using Microsoft.Office.Interop.Word; //ver 12.0
/// <summary>
/// 自動頁碼,頁眉頁腳
/// 20120603 塗聚文
/// Geovin Du
/// </summary>
/// <param name="pPageHeader">頁眉自定義文字</param>
/// <param name="pPageFoot">頁腳自定義文字</param>
public void SetPageHeaderAndFooter(string pPageHeader, string pPageFoot)
{
Object missing = System.Reflection.Missing.Value;
//1
//添加页眉
//this._wordApplication.ActiveWindow.View.Type = Microsoft.Office.Interop.Word.WdViewType.wdOutlineView;
//this._wordApplication.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekPrimaryHeader;
//this._wordApplication.ActiveWindow.ActivePane.Selection.InsertAfter(pPageHeader);
设置中间对齐
//this._wordApplication.Selection.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter;
跳出页眉设置
//this._wordApplication.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekMainDocument;
//_wordApplication.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsMessageBox;
//頁腳
//this._wordApplication.ActiveWindow.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekEvenPagesFooter;
//this._wordApplication.ActiveWindow.ActivePane.Selection.InsertAfter(pPageHeader);
//http://www.c-sharpcorner.com/UploadFile/amrish_deep/WordAutomation05102007223934PM/WordAutomation.aspx
//2.设置要插入到文档各部分主页脚中的文本的字体。此代码示例使用活动文档。
//http://msdn.microsoft.com/zh-cn/library/ms178795(v=vs.90).aspx
foreach (Microsoft.Office.Interop.Word.Section wordSection in this._wordDocument.Sections)
{
wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdDarkRed;
wordSection.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Font.ColorIndex = Microsoft.Office.Interop.Word.WdColorIndex.wdBlue;
wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Font.Size = 9;
wordSection.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Font.Size = 9;
//2.将文本插入到页脚中
wordSection.Footers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text = pPageFoot;
wordSection.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Text = pPageHeader;
}
//1.添加“自动图文集”项,以在文档的每个页眉中显示“第 X 页,共 Y 页
//foreach (Microsoft.Office.Interop.Word.Section section in this._wordDocument.Sections)
//{
// object fieldEmpty = Microsoft.Office.Interop.Word.WdFieldType.wdFieldEmpty;
// object autoText = "AUTOTEXT \"Page X of Y\" ";
// object preserveFormatting = true;
// section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range.Fields.Add(
// section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary].Range,
// ref fieldEmpty, ref autoText, ref preserveFormatting);
// section.Headers[Microsoft.Office.Interop.Word.WdHeaderFooterIndex.wdHeaderFooterPrimary]
// .Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight;
//}
//自动页码设置
//John Yang http://social.msdn.microsoft.com/Forums/en/vsto/thread/a044ff2d-b4a7-4f19-84f4-f3d5c55396a8
object oAlignment = Microsoft.Office.Interop.Word.WdPageNumberAlignment.wdAlignPageNumberCenter;
// Open up the footer in the word document
this._wordApplication.ActiveWindow.ActivePane.View.SeekView = Microsoft.Office.Interop.Word.WdSeekView.wdSeekCurrentPageFooter;
// Set current Paragraph Alignment to Center
this._wordApplication.ActiveWindow.ActivePane.Selection.Paragraphs.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphRight; //.wdAlignParagraphCenter
// Type in 'Page '
this._wordApplication.ActiveWindow.Selection.TypeText("Page ");
// Add in current page field
Object CurrentPage = Microsoft.Office.Interop.Word.WdFieldType.wdFieldPage;
this._wordApplication.ActiveWindow.Selection.Fields.Add(this._wordApplication.ActiveWindow.Selection.Range, ref CurrentPage, ref missing, ref missing);
// Type in ' of '
this._wordApplication.ActiveWindow.Selection.TypeText(" of ");
// Add in total page field
Object TotalPages = Microsoft.Office.Interop.Word.WdFieldType.wdFieldNumPages;
this._wordApplication.ActiveWindow.Selection.Fields.Add(this._wordApplication.ActiveWindow.Selection.Range, ref TotalPages, ref missing, ref missing);
object start = 0;
object end = 7;
Microsoft.Office.Interop.Word.Range rg = this._wordDocument.Range(ref start,ref end);
rg.Select();
}