如果我有一个带有脚注的Word文档,它们会被文档正文中的上标编号引用。如果我将我的内容复制/粘贴到ckeditor,来自LibreOffice,它会保留我的上标;但是,如果我从Word复制/粘贴,则上标将转换为方括号。
如何在从Word粘贴时保留上标?
答案 0 :(得分:0)
我可以想到两种方法可以做到。一个是编辑WordOpenXML。另一种是使用Word的查找/替换功能。最后一个使用VBA实现起来要简单得多,因为VBA没有内部工具来处理XML。
您需要在复制内容之前运行此宏。假设文档之后应该保持不变,我已经包含了将宏的动作捆绑在一个Undo条目中的代码,然后在代码的末尾执行了Undo。
在Word中,术语^ f可与Find一起使用来定位脚注。
代码在循环中搜索此术语,并用脚注的索引号替换找到的术语。这消除了绊倒你的脚注标记。然后应用脚注样式以保留上标格式。请注意,循环从文档的末尾开始到开始,以便保留脚注编号(否则它们都是“1”)。
Sub ReplaceFootmarkWithSuperscriptNumber()
Dim rngFind As word.Range
Dim findTerm As String
Dim bFound As Boolean
Dim lFootnoteNum As Long
findTerm = "^f"
Set rngFind = ActiveDocument.content
Application.UndoRecord.StartCustomRecord
With rngFind.Find
.ClearFormatting
.Text = findTerm
.Forward = False
Do
bFound = .Execute
If bFound Then
lFootnoteNum = rngFind.Footnotes(1).index
rngFind.Text = CStr(lFootnoteNum)
'rngFind.Select
rngFind.Style = ActiveDocument.styles(wdStyleFootnoteReference)
rngFind.Start = ActiveDocument.content.Start
End If
Loop While bFound
End With
Application.UndoRecord.EndCustomRecord
ActiveDocument.Undo
End Sub