4

我有一个 ASP.NET MVC 4 应用程序,它使用 CKEditor 控件 (4.4.5) 来捕获 HTML,然后将其呈现为 Word (docx) 文档。

当我使用 CKEditor“分页符”按钮时,它会产生

<div style="page-break-after: always"><span style="display: none;">&nbsp;</span></div>

它保留在编辑器的 HTML 中,但不会在 Word 中呈现。

Word中的作用是:

<br> <br style="page-break-after: always;" />

但是我发现每次您将数据保存在 CKEditor 框中时,我的 CKEditor 设置都会将其删除。

我可以更改 CKEditor 以放入 Word 使用分页符按钮识别的代码,还是我应该考虑另一种选择来解决这个问题?

4

1 回答 1

7

我为 4.x 版创建了这个小插件:

CKEDITOR.plugins.add('wordpagebreak', {
    icons : 'wordpagebreak',
    init : function(editor) {

        var pluginName = 'wordpagebreak';

        editor.addCommand(pluginName, {
            exec : function(editor) {
                var html = '<br class="wordpagebreak" clear="all" ' + 
                               'style="mso-special-character: line-break; ' +
                                      'page-break-before: always">';
                var element = CKEDITOR.dom.element.createFromHtml(html);
                editor.insertElement(element);
            }
        });

        editor.ui.addButton(pluginName, {
            label : 'Word Page Break',
            icon : 'wordpagebreak',
            command : pluginName,
            toolbar : 'insert'
        });
    }
});
于 2016-06-24T13:21:20.210 回答