Office js Word Office.js中插入TML的字体错误
当我通过适当的方法在Word文档中插入HTML时,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”),试着把它插入到一个内容控件中,并设置
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()
});
});