Office js Word Office.js中插入TML的字体错误

Office js Word Office.js中插入TML的字体错误,office-js,Office Js,当我通过适当的方法在Word文档中插入HTML时,insertHtml,包含在p标记中的所有HTML内容都会变成“Times New Roman”;剩下的是“Calibri”,这是文档的默认字体。 例如,Hello将是Calibri中的Hello你好将出现在新罗马时代的你好中除了插入的html的最后一段,它将始终使用Calibri 我试着做context.document.getSelection().insertHtml(myHtml,“replace”),试着把它插入到一个内容控件中,并设置

当我通过适当的方法在Word文档中插入HTML时,
insertHtml
,包含在
p
标记中的所有HTML内容都会变成“Times New Roman”;剩下的是“Calibri”,这是文档的默认字体。 例如,
Hello
将是Calibri中的
Hello
<代码>你好

将出现在新罗马时代的
你好
除了插入的html的最后一段,它将始终使用Calibri

我试着做
context.document.getSelection().insertHtml(myHtml,“replace”)
,试着把它插入到一个内容控件中,并设置
myContentControl.styleBuiltIn='Normal'
myContentControl.font.name='Calibri'
,但它没有改变任何东西

有人有主意吗

谢谢

为Cindy编辑 新罗马时代;没有涉及CSS,只是简单的HTML

Lorem ipsum Door sit amet,是一位杰出的领导者。Sed faucibus varius erat,位于lacinia et.Nullam mattis vitae nunc eget ultrices的一家知名品牌。克拉斯·马萨·拉库斯,秃鹫,特里斯蒂克·奎斯,艾库利斯,狮子座。这是我的最爱,威尼斯人的生命。Donec augue id accumsan元素拍卖商。奥奇奥奇(orci orci)的交通工具,位于索利西图丁(sollicitudin nunc lobortis)。艾蒂亚姆·莫里斯·朗库斯、舌苔变种、多洛浮雕。前庭妊娠期胎膜早闭。马来苏阿达尼西整粒车。在tristique vulputate massa中,eu mattis massa dictum ac.Suspendisse在发酵前无sem。Etiam tincidunt augue ut justo pretium,欧盟拍卖人velit blandit。狮子座的马萨,nec的设备水平,马蒂斯·奎斯·埃尼姆

不含任何元素和最大元素。佩伦特式的权杖是一种很好的装饰,它可以用来装饰封建社会。埃蒂亚姆·尤伊斯莫德·阿尔库坐在一个舒适的房间里。在朗卡斯·森佩尔举行圣典。Suspendisse vel dui sollicitudin,调味品eros sed,malesuada augue。根据康努比亚·诺斯特拉(conubia nostra)和希梅纳奥斯(inceptos himenaeos)的规定,社会责任和责任等级为:。在菲尼布斯,奥奇·费吉亚·乌兰科珀·阿利奎姆,自由的大分子,最大直径的非sem。不可移动,不可移动


努克·普莱瑞特是一个梅特斯·马蒂斯·弗林利亚。佩伦茨克ac马蒂斯nisl。阿利奎姆坐在阿梅特马克西姆斯努拉。但利奥·埃拉特,效率高,效率高。普罗因拉西尼亚高效浓缩液。福斯·奎斯·乌兰科珀·莫里斯。杜伊斯·欧努克·佩伦茨克、埃吉斯塔斯·泰勒斯·欧斯、奥克托·拉克斯。佩伦茨克努克·尼西(Suspendisse pellentesque nunc nisi)是一种调味品,它是一种猫粮调味品。整型eu nulla pharetra,ullamcorper nulla in,faucibus turpis。

这是设计的。所有
都应获得浏览器的默认样式,除非它们具有覆盖它的
样式
属性。尝试将
style=“font-family:calibri”
添加到您希望成为calibri的段落中。错误在于最后一段忽略了
style
属性(以及浏览器的默认样式)。解决方法是在最后一段后添加

好的,对于那些碰巧在这里结束的人,这里是我的测试结果

添加内容控件并将其styleBuiltIn设置为normal可以正确设置我的内部html。我的意思是:

var thisDocument = context.document,
        range = thisDocument.getSelection(),
        contentControl = range.insertContentControl();
    contentControl.insertHtml(element, Word.InsertLocation.start);
    return context.sync().then(function () {
        contentControl.styleBuiltIn = 'Normal';
        return context.sync();
    });
<w:style w:type="paragraph" w:styleId="NormalWeb">
<w:name w:val="Normal (Web)"/>
<w:basedOn w:val="Normal"/>
<w:uiPriority w:val="99"/>
<w:semiHidden/>
<w:unhideWhenUsed/>
<w:rsid w:val="006D08D1"/>
<w:pPr>
  <w:spacing w:before="100" w:beforeAutospacing="1" w:after="100" w:afterAutospacing="1" w:line="240" w:lineRule="auto"/>
</w:pPr>
<w:rPr>
  <w:rFonts w:ascii="Times New Roman" w:eastAsiaTheme="minorEastAsia" w:hAnsi="Times New Roman" w:cs="Times New Roman"/>
  <w:sz w:val="24"/>
  <w:szCs w:val="24"/>
  <w:lang w:eastAsia="fr-FR"/>
</w:rPr>
设置段落字体无效。我去查看表示XML的文件,发现Rick在说什么。我所有的
标记都自动嵌套在
标记中,例如:

<w:p w:rsidR="00FC6339" w:rsidRDefault="00FC6339">
  <w:pPr>
    <w:pStyle w:val="NormalWeb"/>
    <w:divId w:val="342317998"/>
  </w:pPr>
  <w:r>
    <w:t xml:space="preserve">My awesome text</w:t>
  </w:r>
</w:p>

而且。。。知道了!现在,我插入的html中的
标记具有与Word文档中插入符号/选择符号相同的基本字体参数。

请添加一个可重新编写的html片段,好吗?以及任何涉及的css。在上面编辑:)好的,谢谢。至少我没有错过什么。我实际上想要的是我的html块具有文档的默认字体(在我的示例中是Calibri),但也可以是其他字体。所以我不应该添加“style”属性,除非我先得到默认字体。我能做到,对吗?是的,是的,你应该能够从document.body.font.name属性中获取字体名称。非常感谢你的工作-我不敢相信我找到了我面临的问题…以及一个优雅的解决方案。再加上确认我没有疯(insertHTML奇怪地在我的文档中添加了两种不同的样式)。谢谢大家!!
 Word.run(function (context) {
        var thisDocument = context.document,
            range = thisDocument.getSelection(),
            paragraph = range.insertParagraph("", Word.InsertLocation.after),
            //Getting range "start" because, if user selection contains different fonts, font will be null
            _range = range.getRange("start"),
            rangeFontName,
            rangeFontSizePx,
            rangeFontColor;
        _range.load('font');
        return context.sync().then(function () {
            rangeFontName = _range.font.name;
            //Font size returned by the doc is in pt -> convert to px
            rangeFontSizePx = (96 / 72 * _range.font.size) + "px";
            rangeFontColor = _range.font.color;

            //Setting style inline
            element.find('p').css({
               'font-family': rangeFontName,
               'font-size': rangeFontSizePx,
               'color': rangeFontColor
            });
            paragraph.insertHtml(element.html(), Word.InsertLocation.replace);
            });
            return context.sync()
        });
    });