как использовать css библиотеки SAPUI5 в window.print?

Я разработал приложение SAPUI5, в котором есть возможность печати. Когда я нажимаю кнопку печати, я пишу содержимое области печати в документ и вывожу печать с помощью window.print();

 var printContents = document.getElementById("printArea").innerHTML;
 var win = window.open("", "PrintWindow");
 win.document.write("<div class='page'>" + printContents + "</div>");
      setTimeout(function() {
       win.print();
       win.stop();
      }, 2000);

Но проблема в том, что мне не хватает библиотеки CSS библиотеки SAPUI5 по умолчанию в моей печати. Мне нужна таблица стилей SAPUI5 по умолчанию в моей печати, как это исправить?


person Srinivas Gadilli    schedule 05.05.2017    source источник


Ответы (1)


Я также столкнулся с той же проблемой. Пожалуйста, добавьте ниже код между "var win..." и "win.document.write...".

$.each(document.styleSheets, function(index, oStyleSheet) {
  if(oStyleSheet.href){
    var link = document.createElement("link");
    link.type = oStyleSheet.type;
    link.rel = "stylesheet";
    link.href = oStyleSheet.href;
    //win.document.head.appendChild(link); --> this doesn't work in IE
    win.document.getElementsByTagName("head")[0].innerHTML = win.document.getElementsByTagName("head")[0].innerHTML + link.outerHTML;
  }
});
person Nick Yang    schedule 10.05.2017
comment
Я реализовал это решение, но получаю сообщение об ошибке: document.createElement не является конструктором. Явная ссылка css в открытом окне печати — webidetestingxxxxx.dispatcher.us3.hana.ondemand.com/resources/com/css/style.css, которая не является действительной ссылкой на css. Любая идея, как решить? - person ReeseB; 09.09.2019