如何添加。到Word中书签的名称

时间:2018-08-03 07:05:39

标签: ms-word

因此,我正在使用Word创建模板,以使用Java中的XDocReport生成.pdf。我遇到的问题是,当我在Word中向图像添加书签时,允许的名称不能包含“。”。 ,例如,我无法命名书签Estimate2.Photo,这是将变量正确映射到要传递的虚拟对象所需的名称。我的问题是以下内容,有什么办法可以更改此默认Word行为,以便它允许我添加包含特殊字符(如“”)的书签。 ?

2 个答案:

答案 0 :(得分:2)

我发现了一种通过修改配置.xml文件来重新连接此默认行为的方法。为了访问书签文件,请按照下列步骤操作:

  1. 转到.docx文件,右键单击该文件,转到7zip,然后将其作为存档打开。
  2. 访问word文件夹,您将在其中找到document.xml文件。
  3. 提取
  4. 使用记事本或任何其他文本编辑器打开,找到包含name属性的书签​​开始xml标记并进行修改。
  5. 修改文件后,将其拖回存档并保存。

答案 1 :(得分:1)

哇。我不会以为这会起作用...很高兴找到@Patratel

  

尽管它似乎可以正常工作,但我不建议您将其用于临时文件或好奇心以外的其他事情...

也就是说,这是执行/测试此操作的步骤:

手动方法:

  1. 添加常规书签(快捷方式:Alt> I> K)

    • 给它起一个像dot_dot
    • 的名字
    • 保存文件
    • 将扩展名从.docx更改为.zip
  2. 打开.zip文件夹

    • 将document.xml保存到桌面(或其他地方)
  3. 找到文本dot_dot并替换为dot.dot

    • 保存.xml文件
    • 将.xml文件复制回.zip文件夹
    • 将.zip重命名为.docx
  4. 在MS Word中打开

    • 打开书签对话框(Alt> I> K)
    • 从列表中选择dot.dot
    • 按Goto

How to add a dot bookmark

功能的快速测试

从那里可以很容易地测试书签是否可以正常使用...为此,我添加了一个新段落,并将交叉引用插入到添加了书签的文本中。交叉引用有效。

.InsertXML方法

接下来,我也对@Cindy关于范围插入XML的评论感到好奇...它起作用了,为了测试这一点,我在立即窗口中使用了以下代码:

' replace text in document with the equivalent XML (generates a few pages)
selection.Range.Text = thisdocument.Range.WordOpenXML

' replace the XML with the result of inserting itself into the document
thisdocument.Range.InsertXML thisdocument.Range.Text

一种自动方法

Sub dottyBM()
    Dim newDoc As Word.Document
    Set newDoc = Application.Documents.Add
    newDoc.Range.Text = "Testing a dot bookmark"

    Dim bmRange As Word.Range
    Set bmRange = newDoc.Paragraphs(1).Range
    bmRange.Start = bmRange.Start + InStr(bmRange.Text, " dot")
    bmRange.End = bmRange.Start + 3

    ' bmRange.Bookmarks.Add "dot.dot"  ' Err: 5828, Bad bookmark name
    bmRange.Bookmarks.Add "dot_dot"
    bmRange.InsertXML Replace$(bmRange.WordOpenXML, "dot_dot", "dot.dot")
    Application.Dialogs(168).Show

    newDoc.Close False
End Sub