调用demo:
static void Main(string[] args)
{
//删除1,2,3页
deletePagesInFile(@"C:\test1.docx", 1, 3);
//删除1,2,3,4页
deletePagesInFile(@"C:\test1.docx", 1, 4);
}
实现:
//引入Microsoft.Office.Interop.Word.dll后
//using Microsoft.Office.Interop.Word;
static object oMissing = System.Reflection.Missing.Value;
static void deletePageInFile(Microsoft.Office.Interop.Word.Document wordDoc, object objPage)
{
//下面是取得打开文件的页数
int pages = wordDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref oMissing);
object objWhat = Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage;
object objWhich = Microsoft.Office.Interop.Word.WdGoToDirection.wdGoToAbsolute;
Microsoft.Office.Interop.Word.Range range1 = wordDoc.GoTo(ref objWhat, ref objWhich, ref objPage, ref oMissing);
Microsoft.Office.Interop.Word.Range range2 = range1.GoToNext(Microsoft.Office.Interop.Word.WdGoToItem.wdGoToPage);
object objStart = range1.Start;
object objEnd = range2.Start;
if (range1.Start == range2.Start)
objEnd = wordDoc.Characters.Count;//最后一页
string str = wordDoc.Range(ref objStart, ref objEnd).Text;
//MessageBox.Show(str);
object Unit = (int)Microsoft.Office.Interop.Word.WdUnits.wdCharacter;
object Count = 1;
if (string.IsNullOrEmpty(str.Trim()))
{
wordDoc.Range(ref objStart, ref objEnd).Delete(ref Unit, ref Count);
}
else
{
wordDoc.Range(ref objStart, ref objEnd).Delete(ref Unit, ref Count);
}
}
static void deletePagesInFile(object filePath, int start,int end)
{
//启动Word程序
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
if (filePath == null)
filePath = @"C:\test.docx"; //这里是Word文件的路径
object newPath = (filePath as string) + "_result.docx";
//打开文件
Microsoft.Office.Interop.Word.Document wordDoc = wordApp.Documents.Open(
ref filePath, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing,
ref oMissing, ref oMissing, ref oMissing, ref oMissing);
for(int i = end;i >=start;i--)
{
deletePageInFile(wordDoc, start);
}
wordDoc.SaveAs(ref newPath,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing,
ref oMissing
);
//关闭文件
wordDoc.Close(ref oMissing, ref oMissing, ref oMissing);
//退出Word程序
wordApp.Quit(ref oMissing, ref oMissing, ref oMissing);
}