2015-11-18 9 views
1

J'ai une application ASP.NET MVC 4 qui utilise le contrôle CKEditor (4.4.5) pour capturer du code HTML qui est ensuite rendu dans un document Word (docx).Saisie de sauts de page dans CKEditor

Lorsque j'utilise le bouton CKEditor « Saut de page », il produit

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

qui est retenu dans le code HTML de l'éditeur, mais il n'est pas rendu dans Word.

Qu'est-ce que fonctionne le dans Word est:

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

Mais je trouve que mes bandes de configuration de ckeditor ceci chaque fois que vous enregistrez des données dans la zone de CKEditor. Est-ce que je peux changer CKEditor pour mettre dans le code que Word reconnaît avec le bouton de saut de page, ou devrais-je considérer une autre option pour résoudre ceci?

Répondre

3

J'ai créé ce petit plug-in pour la version 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' 
     }); 
    } 
}); 
+0

Pouvez-vous donner le lien pour ce plug-in? –

+0

Aucun lien pour le plugin. c'est tout le code dont vous avez besoin. doit être déclaré avant d'instancier le pluging et référencé dans la clé de configuration ckeditor extraPlugins: extraPlugins: 'wordpagebreak, savebtn', – mattimatti