我试图用VB.net在word中添加书签..有没有人有想法?

时间:2018-04-05 08:03:09

标签: vb.net

Imports DocumentFormat.OpenXml
Imports DocumentFormat.OpenXml.Wordprocessing
Imports DocumentFormat.OpenXml.Packaging

Public Class Add_bookmark

    Const fileName As String = "F:\vb\part2 here\AddRemove.docx"
    Const bookmarkName As String = "Page1"

    Private Sub Add_bookmark_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Using doc As WordprocessingDocument = WordprocessingDocument.Open(fileName, True)
            Dim docBody As Body = doc.MainDocumentPart.Document.Body
            Dim addBookmark As BookmarkStart = docBody.Descendants(Of BookmarkStart)().FirstOrDefault(Function(a) a.Name = bookmarkName)
            If addBookmark Is Nothing Then
                Throw New Exception(String.Format("Bookmark {0} not found", bookmarkName))
            End If
            'addBookmark.InsertAt(bookmarkName)
            doc.MainDocumentPart.Document.Save()
        End Using
    End Sub
End Class

1 个答案:

答案 0 :(得分:0)

我的建议我认为这几乎可以解决大多数Open XML SDK问题。他们有比较工具和代码生成工具。善用你的想法。

  1. 创建要在Microsoft Word中查看的文档。保存它。
  2. 再次打开文档,添加书签。再次保存,但名称不同。
  3. 打开XML SDK比较工具并选择这两个文档。它将向您展示差异,并将向您展示可用于创建2个文档的示例.NET代码。在这种情况下,您将专注于代码中的差异。