Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.08.2012, 00:00
Новичок на форуме
Отправить личное сообщение для jdiond Посмотреть профиль Найти все сообщения от jdiond
 
Регистрация: 29.04.2012
Сообщений: 6

Печать изображения
Помогите пжл..
есть изображение и кнопка под ним
<p><img src="image.png" alt="img" /></p>
<input id="print_b" name="print" type="button" value="Распечатать" />
надо сделать, чтоб при нажатии на кнопку, распечатывалось изображение.. как это реализовать??
Ответить с цитированием
  #2 (permalink)  
Старый 10.08.2012, 02:19
Новичок на форуме
Отправить личное сообщение для jdiond Посмотреть профиль Найти все сообщения от jdiond
 
Регистрация: 29.04.2012
Сообщений: 6

проблему решил.. только вот как убрать колонтитулы при печати?
Ответить с цитированием
  #3 (permalink)  
Старый 10.08.2012, 07:42
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

jdiond, на сколько знаю подобную фишку программно можно провернуть только в IE (ActiveX)
Ответить с цитированием
  #4 (permalink)  
Старый 10.08.2012, 10:07
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от jdiond
проблему решил.. только вот как убрать колонтитулы при печати?
Как решили, поделитесь результатом (в отдельном окне открывали)

https://developer.mozilla.org/en-US/...M/window.print
<button onclick="window.print()">print</button>


<img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235">
<button id="printBut">print image</button>

<script>
window.onload = function () {
	var printBut = document.getElementById('printBut');
	printBut.onclick = function () {
		var win = window.open();
		win.document.write('<img src="http://javascript.ru/forum/image.php?u=19820&dateline=1334914235">');
		win.print();
		win.close()
	}
}
</script>

PS: колонтитулы наверное можно убрать только в настройках самой печати, о чём можно предупредить пользователя

Последний раз редактировалось bes, 10.08.2012 в 10:36.
Ответить с цитированием
  #5 (permalink)  
Старый 27.03.2013, 15:27
Новичок на форуме
Отправить личное сообщение для olga_s Посмотреть профиль Найти все сообщения от olga_s
 
Регистрация: 27.03.2013
Сообщений: 1

bes, использовала ваш метод печати изображения через js. Не работает в IE и Opera. С чем это м.б. связано?
Ответить с цитированием
  #6 (permalink)  
Старый 27.03.2013, 18:18
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от olga_s
bes, использовала ваш метод печати изображения через js. Не работает в IE и Opera. С чем это м.б. связано?
с динамически открываемыми окнами
Ответить с цитированием
  #7 (permalink)  
Старый 27.03.2013, 21:22
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Народ, потестите мой код ( у меня просто принтера нету )
<!DOCTYPE html>
<meta charset="utf-8" />
<button onclick="printImage()">Печать</button>
<div id="image"><img src="http://ikeep.ws/uploads/posts/2011-08/1313657478_1235508295_vo_iguasu_br_3.jpg" /></div>
<script>
function printImage() {
    printHTML(document.getElementById('image').innerHTML);
}

function printHTML(html) {
    var frame = document.createElement('iframe');
	frame.style.cssText = 'border:none;position:fixed;left:100%;';
	frame.onload = function() {
		var cssText = 'body{display:none} @media print{body{display:block}}';
		var style = this.contentDocument.createElement('style');
		if (style.readyState == 'loading') {
			style.onreadystatechange = function() {
				alert(this.readyState);
				if (this.readyState = 'complete') {
					this.sheet.cssText = cssText;
				}
			}
		} else {
			style.textContent = cssText;
		}
		this.contentDocument.getElementsByTagName('head')[0].appendChild(style);
		this.contentDocument.body.innerHTML = html;
		this.contentWindow.print();
		setTimeout(function(){
			frame.parentNode.removeChild(frame);
		}, 0);
	}
	document.body.appendChild(frame);
}
</script>

В хроме работает.
Ответить с цитированием
  #8 (permalink)  
Старый 07.03.2014, 04:49
Новичок на форуме
Отправить личное сообщение для I_CaR Посмотреть профиль Найти все сообщения от I_CaR
 
Регистрация: 12.12.2013
Сообщений: 6

колонтитулы так ни кто и не победил?
Ответить с цитированием
  #9 (permalink)  
Старый 07.03.2014, 07:25
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,719

Барахло можно убрать только ручками. @page такого рода селекторов не предлагает. Одна радость что опции сохраняются. То есть один раз убрал и печатай.

Кроме того еще там недоступная со страницы опция печатать фоновые заливки и бла-бла по умолчанию отключенная.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Расчет реальных размеров изображения в галерее Vision Элементы интерфейса 7 10.07.2012 20:56
Получение высоты изображения theo_ Javascript под браузер 2 21.06.2011 15:04
Проверка размера изображения Bizarre Общие вопросы Javascript 4 09.03.2011 17:02
Вывод изображения на печать. can2zia Events/DOM/Window 0 10.01.2011 13:39
отрисовка изображения по произвольным координатам Th0m@$ Events/DOM/Window 14 23.01.2010 15:04