我希望在从Word粘贴时删除大多数字体样式,但如果它们不是默认字体(黑色),则可以保留字体颜色。这样,如果我的Word文档中的文本有一行红色文本,我就不会失去它。
PasteFromWord插件的配置选项包括一种在粘贴时保留Word的字体样式的方法(pasteFromWordRemoveFontStyles = false),但这打开了大量字体残缺的大门。我想要通过的是任何非默认字体颜色。
保留字体大小可以在Word中通过使用H1-H6样式在很大程度上处理,但我不知道如何在Word中为红色文本创建样式并将其粘贴到CKEditor。任何帮助或想法赞赏。感谢。
答案 0 :(得分:2)
通过修改“从Word粘贴”插件,可以保留颜色样式。
首先,打开ckeditor配置中的样式过滤器:
config.pasteFromWordRemoveFontStyles = true;
现在,在" ckeditor / plugins / pastefromword"文件夹,打开" default.js"。
找到此代码部分(撰写本文时的第956行):
// Assume MS-Word mostly carry font related styles on <span>,
// adapting them to editor's convention.
if ( styleText ) {
attrs.style = stylesFilter( [
// Drop 'inline-height' style which make lines overlapping.
[ 'line-height' ],
[ ( /^font-family$/ ), null, !removeFontStyles ? styleMigrateFilter( config.font_style, 'family' ) : null ],
[ ( /^font-size$/ ), null, !removeFontStyles ? styleMigrateFilter( config.fontSize_style, 'size' ) : null ],
[ ( /^color$/ ), null, !removeFontStyles ? styleMigrateFilter( config.colorButton_foreStyle, 'color' ) : null ],
[ ( /^background-color$/ ), null, !removeFontStyles ? styleMigrateFilter( config.colorButton_backStyle, 'color' ) : null ]
] )( styleText, element ) || '';
}
在以/^color$/
开头的行中,将!removeFontStyles
更改为removeFontStyles
,以便现在新行:
[ ( /^color$/ ), null, removeFontStyles ? styleMigrateFilter( config.colorButton_foreStyle, 'color' ) : null ],
在测试前清除浏览器缓存。