已建立文本的页码
本文关键字:文本 建立 | 更新日期: 2023-09-27 18:28:53
在word文档(.docx,.doc)中有多个查找和替换文本的示例,但如何查找所查找文本所在的页面?
谢谢,Mohsen
您可以对Find()
的结果使用Information(Word.WdInformation.wdActiveEndAdjustedPageNumber)
方法,并将其强制转换为int
,以获得找到文本的PageNumber。
张贴你的代码,我会更新它以返回页码。
这里有一个例子:
currentPageNumber = word.ActiveDocument.ActiveWindow.Selection.Range.Information(
Microsoft.Office.Interop.Word.WdInformation.wdActiveEndAdjustedPageNumber)
以下是用于获取PageNumber的枚举器的MSDN文档。根据您的需要,您可能希望使用与PageNumbers相关的2个枚举器中的1个。
public void FindLoop()
{
Word.Application wordApp = new Word.Application();
wordApp.Visible = false;
object missing = System.Type.Missing;
object saveChanges = Word.WdSaveOptions.wdSaveChanges;
Word.Documents docs = wordApp.Documents;
docs.Open(filePathAndName, ReadOnly: true);
int intFound = 0;
Word.Range rng = wordApp.ActiveDocument.Content; // this = wordApp.ActiveDocument
rng.Find.ClearFormatting();
rng.Find.Forward = true;
rng.Find.Text = this.textBoxSearch.Text.Trim();
try
{
rng.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);
while (rng.Find.Found)
{
intFound++;
rng.Find.Execute(
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing);
}
MessageBox.Show("Strings found: " + intFound.ToString());
wordApp.ActiveDocument.Close(saveChanges, ref missing, ref missing);
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
wordApp.ActiveDocument.Close(saveChanges, ref missing, ref missing);
//wordApp.Application.Quit(ref missing, ref missing, ref missing);
}
}