C#使用Spire.Doc获取word第二页的所有书签,不使用BookmarkNavigator
时间: 2024-03-22 17:39:58 浏览: 118
如果你不想使用BookmarkNavigator类,你可以手动遍历Word文档中的所有书签,然后检查它们是否位于第二页。以下是一个示例代码,可以获取文档中第二页的所有书签:
```csharp
using Spire.Doc;
using Spire.Doc.Documents;
// 加载Word文档
Document doc = new Document("sample.docx");
// 获取第二页的段落
Section section = doc.Sections[1];
// 遍历文档中的所有书签
foreach (Bookmark bookmark in doc.Bookmarks)
{
if (bookmark != null && bookmark.BookmarkStart.OwnerParagraph.OwnerTextBody.OwnerSection == section)
{
// 处理第二页的书签
Console.WriteLine(bookmark.Name);
}
}
```
在上面的示例代码中,我们首先加载Word文档,然后获取文档的第二页。接下来,我们遍历文档中的所有书签,并检查它们是否属于第二页。最后,我们可以在控制台上输出所有第二页的书签名称。
相关问题
C#使用Spire.Doc获取word第二页的所有书签
你可以使用Spire.Doc提供的BookmarkNavigator类来获取Word文档中的书签。以下是一个示例代码,可以获取文档中第二页的所有书签:
```csharp
using Spire.Doc;
using Spire.Doc.Documents;
// 加载Word文档
Document doc = new Document("sample.docx");
// 获取第二页的段落
Section section = doc.Sections[1];
// 获取第二页的所有书签
BookmarkNavigator navigator = new BookmarkNavigator(doc);
navigator.MoveToBookmark(section.StartBookmark.Name, true, false);
while (navigator.MoveToNextBookmark())
{
Bookmark bookmark = navigator.CurrentBookmark;
if (bookmark != null && bookmark.BookmarkStart.OwnerParagraph.OwnerTextBody.OwnerSection == section)
{
// 处理书签
Console.WriteLine(bookmark.Name);
}
}
```
在上面的示例代码中,我们首先加载Word文档,然后获取文档的第二页。接下来,我们使用BookmarkNavigator类来遍历文档中的所有书签,并检查它们是否属于第二页。最后,我们可以在控制台上输出所有第二页的书签名称。
C# 通过Spire.Doc获取指定word第页码的书签
可以通过以下代码获取指定Word文档中某个书签所在页码:
```csharp
using Spire.Doc;
// 加载Word文档
Document document = new Document("your-document.docx");
// 获取指定书签
Bookmark bookmark = document.Bookmarks["your-bookmark"];
// 获取书签所在的段落
Paragraph paragraph = bookmark.BookmarkStart.OwnerParagraph;
// 获取段落所在的页码
int pageNumber = document.GetPageIndex(paragraph);
```
其中,`your-document.docx`表示你要操作的Word文档,`your-bookmark`表示你要获取的书签名称。注意,如果书签不存在,会抛出`KeyNotFoundException`异常。
阅读全文