Показать сообщение отдельно
  #1 (permalink)  
Старый 26.01.2021, 19:55
Аватар для voraa
Профессор
Отправить личное сообщение для voraa Посмотреть профиль Найти все сообщения от voraa
 
Регистрация: 03.02.2020
Сообщений: 2,704

Распечатать отдельный div с нормальным заголовком
Проблема такая.
Есть большая страница, на ней есть отдельный div, текст которого надо распечатать.
Пытаюсь сделать так: открываю отдельное окно, в которое передаю заранее подготовленный документ с текстом этого дива. Это документ при загрузке вызывает печать.

<!doctype html>
<html>
<head>
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
</head>
<body>
       <div> Это не печатаем </div>
	<div id=dprint>
	Всякая бла-бла-бла,<br>
	которую нужно<br>
	напечатать
	</div>
       <div> Это тоже не надо </div>
	<button id=bp>Print</button>	
</body>
<script>
// Шаблон документа
const prtempl = `  
<!doctype html>
<html>
<head>
 <meta http-equiv="Content-type" content="text/html; charset=utf-8" lang="ru">
<meta name="viewport" content="width=device-width, initial-scale=1.0" >
<style>
</style>
<sc` + `ript>
window.addEventListener('load', () => {
	window.print()
})
</s` + `cript>

</head>
<body>
$doc$          
</body>
</html>`;
     // конец шаблона

document.getElementById('bp').addEventListener('click', () => {
	let dp = document.getElementById('dprint')
	let spr = prtempl.replace('$doc$', dp.outerHTML)
	let purl =  window.URL.createObjectURL(new Blob([spr],  {type: 'text/html'}));
	let wp = window.open (purl, 'print', "left=0,top=0,width=700,height=600,status");
})

</script>
</body>
</html>


Все нормально работает.
Вот только адрес этого документа имеет вид
blob:******/8d03567a-c6d8-4b79-8c4e-1383ac9e75ac
Соответственно этот же адрес указывается в заголовке страницы при печати.

Вот как бы сделать заголовок страницы поприличнее?

Последний раз редактировалось voraa, 26.01.2021 в 19:59.
Ответить с цитированием