因此,我正在使用Word创建模板,以使用Java中的XDocReport生成.pdf。我遇到的问题是,当我在Word中向图像添加书签时,允许的名称不能包含“。”。 ,例如,我无法命名书签Estimate2.Photo,这是将变量正确映射到要传递的虚拟对象所需的名称。我的问题是以下内容,有什么办法可以更改此默认Word行为,以便它允许我添加包含特殊字符(如“”)的书签。 ?
答案 0 :(得分:2)
我发现了一种通过修改配置.xml文件来重新连接此默认行为的方法。为了访问书签文件,请按照下列步骤操作:
答案 1 :(得分:1)
尽管它似乎可以正常工作,但我不建议您将其用于临时文件或好奇心以外的其他事情...
也就是说,这是执行/测试此操作的步骤:
添加常规书签(快捷方式:Alt> I> K)
打开.zip文件夹
找到文本dot_dot并替换为dot.dot
在MS Word中打开
从那里可以很容易地测试书签是否可以正常使用...为此,我添加了一个新段落,并将交叉引用插入到添加了书签的文本中。交叉引用有效。
接下来,我也对@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