Печать определенной части страницы

D
На сайте с 22.02.2011
Offline
130
7845

Как можно напечатать определенную часть страницы так, чтобы она печаталась полностью на лист, а не отрезок с сайта на части листа?

Пример:

стили @media print {

body {

visibility: hidden;

}

print2 {

visibility: visible;

}

Текст заключил в <print2> </print2>, на сайте он в центре, печатается только он и остальные части не видны, но все-равно печатаются, только невидимые, если полностью печатать сайт, то он помещается на два листа - второй лист выходит пустой, невидимый.

Ragnarok
На сайте с 25.06.2010
Offline
239
#1

попробуйте вместо

visibility:hidden;

сделать

display:none;

//TODO: перестать откладывать на потом
D
На сайте с 22.02.2011
Offline
130
#2

Ragnarok, теперь все листы пустые.

dma84
На сайте с 21.04.2009
Offline
168
#3

А если так?


body *{
display: none;
}

.print2 *{
display: run-in !important;
}
Geers
На сайте с 12.04.2011
Offline
487
#4

Может такой вариант подойдет?

http://www.opengs.ru/js/224-kak-napechatat-raznye-chasti-straniczy-html.html

D
На сайте с 22.02.2011
Offline
130
#5
dma84:
А если так?

body *{
display: none;
}

.print2 *{
display: run-in !important;
}
Geers:
Может такой вариант подойдет?
http://www.opengs.ru/js/224-kak-napechatat-raznye-chasti-straniczy-html.html

Печатает все страницы. Сайт на Joomla! Добавлены javascript для онлайн-тестов с кнопкой печати.

Код без текста тестов, который вставляю в статью через html-редактор:

<print2>

&nbsp;&nbsp;&nbsp;<span style="color:#006699;text-decoration:underline;cursor:pointer;" onclick="document.getElementById('instruction').style.display = showhide(document.getElementById('instruction').style.display)">
Инструкция</span>
<span style='font-size:10.0pt'>
<br/>
<div id="instruction" style="display: none; width: 100%;">

<br/></li></ol>
<CENTER>
<P><TEXTAREA name="s1" rows="4" cols="70" readonly> </TEXTAREA> </P>
<INPUT onclick="check_me()" type="button" value="Показать результат" />
<INPUT type="reset" value="Сбросить ответы"/>
<INPUT onclick="window.print()" type="button" value="Распечатать документы" />
</CENTER>
</form>

</div>

<script type="text/javascript" language="JavaScript">
var res="2122111212"
function check_me()
{
var count=0
with(document.test)
{
if (!Q1[0].checked&&!Q1[1].checked)
{count+=1};
if (!Q2[0].checked&&!Q2[1].checked)
{count+=1};
if (!Q3[0].checked&&!Q3[1].checked)
{count+=1};
if (!Q4[0].checked&&!Q4[1].checked)
{count+=1};
if (!Q5[0].checked&&!Q5[1].checked)
{count+=1};
if (!Q6[0].checked&&!Q6[1].checked)
{count+=1};
if (!Q7[0].checked&&!Q7[1].checked)
{count+=1};
if (!Q8[0].checked&&!Q8[1].checked)
{count+=1};
if (!Q9[0].checked&&!Q9[1].checked)
{count+=1};
if (!Q10[0].checked&&!Q10[1].checked)
{count+=1};
if (count>0)
{alert("Вы выполнили не все задания. Проверьте себя!") }
else answer()
}
}

function control(k, f1,f2,f3,f4,f5,f6,f7,f8,f9,f10) {
if (k==1&&f1.checked) return true;
if (k==2&&f2.checked) return true;
if (k==3&&f3.checked) return true;
if (k==4&&f4.checked) return true;
if (k==5&&f5.checked) return true;
if (k==6&&f6.checked) return true;
if (k==7&&f7.checked) return true;
if (k==8&&f8.checked) return true;
if (k==9&&f9.checked) return true;
if (k==10&&f10.checked) return true;
return false;
}

function answer()
{
answ="";
with(document)
{
answ+=control(res.charAt(0) ,test.Q1[0],test.Q1[1])?"1":"0"
answ+=control(res.charAt(1) ,test.Q2[0],test.Q2[1])?"1":"0"
answ+=control(res.charAt(2) ,test.Q3[0],test.Q3[1])?"1":"0"
answ+=control(res.charAt(3) ,test.Q4[0],test.Q4[1])?"1":"0"
answ+=control(res.charAt(4) ,test.Q5[0],test.Q5[1])?"1":"0"
answ+=control(res.charAt(5) ,test.Q6[0],test.Q6[1])?"1":"0"
answ+=control(res.charAt(6) ,test.Q7[0],test.Q7[1])?"1":"0"
answ+=control(res.charAt(7) ,test.Q8[0],test.Q8[1])?"1":"0"
answ+=control(res.charAt(8) ,test.Q9[0],test.Q9[1])?"1":"0"
answ+=control(res.charAt(9) ,test.Q10[0],test.Q10[1])?"1":"0"

showResult();
}
}
// 3
function showResult()
{
var nok=0;
var i,s;

for (i=0; i<answ.length;i++) {nok+=answ.charAt(i)=="1"?1:0;}

if(nok>7.5) s="Вы прошли тест! Распечатаются документы о сдаче теста, акты.";
if(nok<7.5) s="Вы не прошли тест.";
document.test.s1.
value=""+s+" Количество правильных ответов "+nok+". Посмотрите на окно рядом с номером вопроса. Если ответ правильный, там (+). Если ответ ошибочен, там (-).";

with(document.test)
{
if (answ.charAt(0)=="1") {T1.value=" + "} else {T1.value=" - "};
if (answ.charAt(1)=="1") {T2.value=" + "} else {T2.value=" - "};
if (answ.charAt(2)=="1") {T3.value=" + "} else {T3.value=" - "};
if (answ.charAt(3)=="1") {T4.value=" + "} else {T4.value=" - "};
if (answ.charAt(4)=="1") {T5.value=" + "} else {T5.value=" - "};
if (answ.charAt(5)=="1") {T6.value=" + "} else {T6.value=" - "};
if (answ.charAt(6)=="1") {T7.value=" + "} else {T7.value=" - "};
if (answ.charAt(7)=="1") {T8.value=" + "} else {T8.value=" - "};
if (answ.charAt(8)=="1") {T9.value=" + "} else {T9.value=" - "};
if (answ.charAt(9)=="1") {T10.value=" + "} else {T10.value=" - "};
}
}
function showhide(obj){
if(obj == 'none') return 'inline';
else return 'none';
}
</script>

</div></print>

Вставляю код через html редактор статей, через css, в индексном файле шаблона, но все равно печатает страницы, а нужно только часть.

SX
На сайте с 19.10.2012
Offline
5
#6

на одном немецком сайте нашел интересный html -> PDF конвертер

http://www.hostnet.de/all2pdf/pdf-konvertierung-testen.html

с помощью него можно отдельные части веб-страницы в pdf конвертировать и печатать

http://www.hostnet.de/all2pdf/pdf-erstellung-mit-javascript.html

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий