下划线不在Ooxml中显示

问题描述 投票:0回答:1

我正在调试Word Office js加载项。它需要做的一件事是在word文档中创建一个隐藏部分。为此,我将一些信息传递给创建OoXML字符串的javascript函数。我使用户能够在此部分中嵌入一些文本,并且用户需要能够斜体,加粗,加下划线或将这些格式的任何组合应用于嵌入的文本。斜体和粗体效果很好,但下划线不起作用。

将嵌入的文本输入到外接程序的html文本框中。用户可以单击一个按钮以斜体显示,另一个按钮以粗体显示,第三个按钮以下划线显示,或第四个按钮以删除这些装饰。按钮的点击事件会在html标签之前和之后添加,因此将以如下方式发送加粗,斜体和下划线的文本字符串:

<b><i><u>string of text</u></i></b>

然后另一个函数将其转换为Ooxml。生成的ooxml看起来像这样:

<w:r> <w:rPr> <w:b /> <w:i /> <w:u /> </w:rPr> <w:instrText xml:space="preserve">string of text</w:instrText> </w:r>

((我可以在控制台日志中看到ooxml字符串)。

代码将其插入文档后,将其加粗并加斜体,但不带下划线。我尝试使用生成代码的功能,例如删除w:u和/>之间的空间:

<w:r> <w:rPr> <w:b/>  <w:i/> <w:u/> </w:rPr> <w:instrText xml:space="preserve">string of text</w:instrText> </w:r>

我尝试删除这些标签上的尾部反斜杠,但这打断了range.insertOoxml()调用。我还尝试添加w:val =“ single”属性,因为我不确定是否需要val,即::

<w:r> <w:rPr> <w:b />  <w:i /> <w:u w:val="single" /> </w:rPr> <w:instrText xml:space="preserve">string of text</w:instrText> </w:r>

此时我很沮丧。该代码与使用什么标记无关,不关心它是b,i还是u。我知道<w:b /><w:i />是切换键,而<w:u />可能不是-我需要以不同的方式处理吗?是否还有其他人遇到过此问题,有人可以指出Ooxml是否存在问题?

谢谢。

javascript ms-word office-js openxml word-addins
1个回答
0
投票

虽然我不确定“隐藏部分”的要求,但这里有两个Open XML标记变体,Word将这些变体呈现为粗体,斜体和带下划线的文本。

© www.soinside.com 2019 - 2024. All rights reserved.