Как распечатать таблицу с помощью Javascript?
Я нашел этот код для печати в Javascript.
function printData()
{
var divToPrint=document.getElementById("printTable");
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
Идентификатор элемента "printTable" - это идентификатор таблицы, которую я хочу напечатать, но, к сожалению, он выводит только содержимое таблицы, а не стиль таблицы. Я просто хочу иметь границы на нем, чтобы его было легче читать в печати. Может кто-нибудь мне помочь?
Ответы
Ответ 1
Вот ваш код в примере jsfiddle. Я тестировал его, и он выглядит нормально.
http://jsfiddle.net/dimshik/9DbEP/4/
Я использовал простую таблицу, возможно, вам не хватает CSS на вашей новой странице, которая была создана с помощью JavaScript.
<table border="1" cellpadding="3" id="printTable">
<tbody><tr>
<th>First Name</th>
<th>Last Name</th>
<th>Points</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
<tr>
<td>John</td>
<td>Doe</td>
<td>80</td>
</tr>
<tr>
<td>Adam</td>
<td>Johnson</td>
<td>67</td>
</tr>
</tbody></table>
Ответ 2
Вы также можете использовать плагин jQuery для этого
плагин jQuery PrintPage
Демо
Ответ 3
Одно дерзкое решение:
function printDiv(divID) {
//Get the HTML of div
var divElements = document.getElementById(divID).innerHTML;
//Get the HTML of whole page
var oldPage = document.body.innerHTML;
//Reset the page HTML with div HTML only
document.body.innerHTML =
"<html><head><title></title></head><body>" +
divElements + "</body>";
//Print Page
window.print();
//Restore orignal HTML
document.body.innerHTML = oldPage;
}
HTML:
<form id="form1" runat="server">
<div id="printablediv" style="width: 100%; background-color: Blue; height: 200px">
Print me I am in 1st Div
</div>
<div id="donotprintdiv" style="width: 100%; background-color: Gray; height: 200px">
I am not going to print
</div>
<input type="button" value="Print 1st Div" onclick="javascript:printDiv('printablediv')" />
</form>
Ответ 4
Мои собратья,
В январе 2019 года я использовал код, сделанный ранее:
<script type="text/javascript">
function imprimir() {
var divToPrint=document.getElementById("ConsutaBPM");
newWin= window.open("");
newWin.document.write(divToPrint.outerHTML);
newWin.print();
newWin.close();
}
</script>
Чтобы понять: ConsutaBPM - это DIV, который содержит внутренние фразы и таблицы. Я хотел напечатать ВСЕ, названия, таблицы и другие. Проблема была в том, когда пытался напечатать ТАБЛИЦУ...
Таблицы могут быть определены с помощью BORDER и CELLPADDING:
<table border='1' cellpadding='1' id='Tablbpm1' >
Работало нормально !!!