Imprimer des notes personnelles avec sauts de ligne

Bonjour,

Dans mes modules, j'ai l'habitude d'offrir aux apprenants accès à une Lightbox dans laquelle ils peuvent prendre des notes personnelles tout au long de leur formation et qu'ils peuvent aussi imprimer; qu'ils soient dans un LMS ou non.

Depuis quelques mois, les sauts de lignes (dans le PDF à imprimer) avaient tous disparus (peut-être dû au passage au HTML5, j'sais pas). Après bien d'infructueuses recherches et tentatives, je viens de régler ma situation ("je" étant un bien grand mot vu que j'ai trouvé et adapté des bouts de JS issus de différents forums...).

Voici ma solution, sans avoir besoin d'insérer d'objet web; juste à copier-coller dans le déclencheur JS d'un bouton (évidemment, vous remplacerez v_notespersonnelles par votre variable texte ainsi que les TITRE et Sous-Titre par ceux de votre choix (ou simplement retirer leurs lignes respectives, selon votre besoin):

 

var player = GetPlayer();

var note =player.GetVar("v_notespersonnelles").replace(/(?:\r\n|\r|\n)/g, '<br>');

// Page HTML

var contents = "<html><head></head><body style='width:650px;padding:20px;font-family: sans-serif;'>";
contents+="<div style='font-size:26px;font-weight:bold;margin-top:30px;margin-bottom:20px;'>TITRE</div>";
contents+="<div style='display:block;border-width:1px';><hr/></div>";
contents+="<div style='font-size:16px;font-weight:bold;'>Sous-Titre</div>";

contents+="<p>"+note+"</p>";

contents+= "</body></html>";

// Imprimer la page HTML

var myWindow = window.open("","Print","width=810,height=610,scrollbars=1,resizable=1");
myWindow.document.write(contents);

myWindow.print();

 

Voilà. Si ça peut éviter des maux de tête à d'autres, tant mieux!

(et le problème du saut se trouvait juste à la fin de la 2e ligne du code, il fallait simplement ajouter le code de saut de ligne '<br>'... M'enfin...)

Alain D.

Be the first to reply