C# 如何通过Spire.Doc获取某页码上的所有书签
时间: 2024-03-18 21:41:50 浏览: 21
你可以使用 Spire.Doc 中的 BookmarkStart 类和 BookmarkEnd 类来获取某一页上的所有书签。首先,你需要获取页码对应的 Section 对象,然后遍历该 Section 中的所有 Paragraph 对象,再遍历每个 Paragraph 中的所有 DocumentObject 对象,找到其中类型为 BookmarkStart 的对象,判断该书签是否在该页中,如果是,则获取该书签的名称。以下是示例代码:
```csharp
using Spire.Doc;
using Spire.Doc.Documents;
// 假设你已经加载了文档并获取了某个页码的 Section 对象
Section section = document.Sections[0];
int pageIndex = 2;
foreach (Paragraph para in section.Paragraphs)
{
foreach (DocumentObject obj in para.ChildObjects)
{
if (obj is BookmarkStart)
{
BookmarkStart bookmarkStart = obj as BookmarkStart;
if (section.Document.Pages.IndexOf(bookmarkStart.Page) == pageIndex)
{
string bookmarkName = bookmarkStart.Name;
// TODO: 处理该书签
}
}
}
}
```
注意,该代码仅供参考,具体实现方式可能因为文档结构、书签位置等情况而有所不同。