У меня есть следующий код для печати содержимого всплывающего окна:
var frame = this._urlElement;
if (frame) {
var content = frame.contentWindow.document.getElementById("content");
if (content) {
MarvalSoftware.UI.Dom.setStyles(content, { 'overflow': 'visible' });
}
frame.contentWindow.focus();
frame.contentWindow.print();
}
где _urlElement
является iframe, а его содержимое doc имеет overflow: auto
. Когда я печатаю в PDF в IE11, я вижу только первую страницу, и содержимое не обрезается чисто, и никакие полосы прокрутки не видны в распечатанном PDF файле. Если я попробую Print Preview, даже внутри iframe, я вижу всю страницу с контуром всплывающего окна.
Страница, которую я пытаюсь напечатать с Iframe, имеет главную страницу с content
div с overflow: auto
. Когда я печатаю подобное, Chrome и IE, я вижу полосу прокрутки на распечатке, а распечатка - только одна страница, поэтому в моей таблице стилей страницы я переопределяю это правило переполнения медиа-запросом для печати, на overflow: visible
. Затем, когда я печатаю на Chrome, полоса прокрутки исчезла, а распечатка - две страницы. В IE полоса прокрутки также исчезла, но распечатка бесцеремонно обрезана в конце напечатанной страницы 1.
Когда я изменяю свой код печати для создания нового IFrame и вставляю его в документ для печати, скопируйте таблицы стилей и тело в новый iframe и распечатайте новый iframe, а затем даже в IE полный документ печатается. То есть новый iframe не содержится ни в каких элементах главной страницы, поэтому есть ли какой-либо другой стиль на главной странице, которую я могу найти, что может вызвать это, кроме overflow
?
Кстати, я, похоже, испытываю такое поведение только при печати в PDF, используя собственный "принтер PDF" Windows.