从 div 的 innerHTML 优化 Javascript 打印
Optimize Javascript print from div's innerHTML
我需要创建发票查询并以 A6 格式打印所有发票(这就是为什么我将 style='height:128mm;' 设置为 div 的原因。是的,我尝试更改该样式设置仍然没有进度)在一个 javascript 打印对话框中。我正在从
后面的代码创建它
for (int i = 0; i < count; i++)
{
// Create invoice query
Literal lt = new Literal();
lt.Text = "<div style='height:128mm;'><hr><table> ";
lt.Text += "<tbody><tr style='font-size:small;'><td><b>İşlem Tarihi</b></td><td>:</td><td>" + "01.07.2015" + "</td></tr>"
lt.Text += "<tr style='font-size:small;'><td><b>Fatura Türü</b></td><td>:</td><td>" + "TELEKOM" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Kurum</b></td><td>:</td><td>" + "TURKCELL" + "</td>"
lt.Text += "<tr style='font-size:small;'><td><b>Fatura No</b></td><td>:</td><td>" + "5069376085" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Banka Referans No</b></td><td>:</td><td>" + "ASDADSASD^12" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Tesisat No</b></td><td>:</td><td>" + "5069376085" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Müşteri Adı</b></td><td>:</td><td>" + "Egemen uluçay" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Son Ödeme Tarihi</b></td><td>:</td><td>" + "10.07.2015" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Tutar</b></td><td>:</td><td>" + "50 TL" + " TL</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Hizmet Bedeli</b></td><td>:</td><td>" + "1 TL" + " TL</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Toplam Tutar</b></td><td>:</td><td>" + "51 TL" + " TL</td></tr></tbody></table>";
lt.Text += "<br><br><div style='text-align:center;'><span style='text-align:center; font-size:12px;'>" + "Vezne" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>" + "3122319793" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>V.D: " + "Mithatpaşa" + " - " + "11111111111" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>" + "Ankara" + "</span>";
lt.Text += "</div></div>";
Panel3.Controls.Add(lt);
}
这是我在 div
中的 html panel3
<div id="dvPrintReceipts" hidden="hidden">
<asp:Panel runat="server" ID="Panel3"></asp:Panel>
</div>
还有我的 javascript 代码 ;
function PrintPanel() {
var panel = document.getElementById("dvPrintReceipts");
var printWindow = window.open('', '', 'height=400,width=800');
printWindow.document.write('<html><head><title>Kasa Raporu</title>');
printWindow.document.write('<link rel="stylesheet" href="assets/css/bootstrap.min.css" /></head><body >');
printWindow.document.write(panel.innerHTML);
printWindow.document.write('</body></html>');
printWindow.document.close();
setTimeout(function () {
printWindow.print();
}, 500);
return false;
};
在这种情况下,我们的 "count" 是 2,但是 javascript 对话框给了 3 页,只有第一页的格式正确。您可以看到第二张发票的位置错误,第三页不必要地出现。
这是渲染的 printWindow HTML ;
<html>
<head><title>Kasa Raporu</title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" />
</head>
<body>
<div id="bodyContent_Panel3">
<div style="height: 128mm;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura Türü</b></td>
<td>:</td>
<td>TELEKOM</td>
</tr>
<tr style="font-size: small;">
<td><b>Kurum</b></td>
<td>:</td>
<td>TURKCELL</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Banka Referans No</b></td>
<td>:</td>
<td>ASDADSASD^12</td>
</tr>
<tr style="font-size: small;">
<td><b>Tesisat No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Müşteri Adı</b></td>
<td>:</td>
<td>Egemen uluçay</td>
</tr>
<tr style="font-size: small;">
<td><b>Son Ödeme Tarihi</b></td>
<td>:</td>
<td>10.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Tutar</b></td>
<td>:</td>
<td>50 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Hizmet Bedeli</b></td>
<td>:</td>
<td>1 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Toplam Tutar</b></td>
<td>:</td>
<td>51 TL TL</td>
</tr>
</tbody>
</table>
<br>
<br>
<div style="text-align: center;"><span style="text-align: center; font-size: 12px;">Vezne</span><br>
<span style="text-align: center; font-size: 12px;">3122319793</span><br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span><br>
<span style="text-align: center; font-size: 12px;">Ankara</span></div>
</div>
<div style="height: 128mm;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura Türü</b></td>
<td>:</td>
<td>TELEKOM</td>
</tr>
<tr style="font-size: small;">
<td><b>Kurum</b></td>
<td>:</td>
<td>TURKCELL</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Banka Referans No</b></td>
<td>:</td>
<td>ASDADSASD^12</td>
</tr>
<tr style="font-size: small;">
<td><b>Tesisat No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Müşteri Adı</b></td>
<td>:</td>
<td>Egemen uluçay</td>
</tr>
<tr style="font-size: small;">
<td><b>Son Ödeme Tarihi</b></td>
<td>:</td>
<td>10.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Tutar</b></td>
<td>:</td>
<td>50 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Hizmet Bedeli</b></td>
<td>:</td>
<td>1 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Toplam Tutar</b></td>
<td>:</td>
<td>51 TL TL</td>
</tr>
</tbody>
</table>
<br>
<br>
<div style="text-align: center;"><span style="text-align: center; font-size: 12px;">Vezne</span><br>
<span style="text-align: center; font-size: 12px;">3122319793</span><br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span><br>
<span style="text-align: center; font-size: 12px;">Ankara</span></div>
</div>
</div>
</body>
</html>
顺便说一下它的 asp.net 网络表单项目。我该怎么做才能解决这个问题?谢谢
您可以使用 page-break-after css 规则,因此对于除最后一个
之外的所有页面
<div style="page-break-after: always;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
...
</tbody>
</table>
<br>
<br>
<div style="text-align: center;">
<span style="text-align: center; font-size: 12px;">Vezne</span>
<br>
<span style="text-align: center; font-size: 12px;">3122319793</span>
<br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span>
<br>
<span style="text-align: center; font-size: 12px;">Ankara</span>
</div>
</div>
最后一页简单div
没有风格
<div>
<hr>
<table>
...
</table>
<br>
<br>
<div style="text-align: center;">
...
</div>
</div>
我需要创建发票查询并以 A6 格式打印所有发票(这就是为什么我将 style='height:128mm;' 设置为 div 的原因。是的,我尝试更改该样式设置仍然没有进度)在一个 javascript 打印对话框中。我正在从
后面的代码创建它 for (int i = 0; i < count; i++)
{
// Create invoice query
Literal lt = new Literal();
lt.Text = "<div style='height:128mm;'><hr><table> ";
lt.Text += "<tbody><tr style='font-size:small;'><td><b>İşlem Tarihi</b></td><td>:</td><td>" + "01.07.2015" + "</td></tr>"
lt.Text += "<tr style='font-size:small;'><td><b>Fatura Türü</b></td><td>:</td><td>" + "TELEKOM" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Kurum</b></td><td>:</td><td>" + "TURKCELL" + "</td>"
lt.Text += "<tr style='font-size:small;'><td><b>Fatura No</b></td><td>:</td><td>" + "5069376085" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Banka Referans No</b></td><td>:</td><td>" + "ASDADSASD^12" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Tesisat No</b></td><td>:</td><td>" + "5069376085" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Müşteri Adı</b></td><td>:</td><td>" + "Egemen uluçay" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Son Ödeme Tarihi</b></td><td>:</td><td>" + "10.07.2015" + "</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Tutar</b></td><td>:</td><td>" + "50 TL" + " TL</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Hizmet Bedeli</b></td><td>:</td><td>" + "1 TL" + " TL</td></tr>";
lt.Text += "<tr style='font-size:small;'><td><b>Toplam Tutar</b></td><td>:</td><td>" + "51 TL" + " TL</td></tr></tbody></table>";
lt.Text += "<br><br><div style='text-align:center;'><span style='text-align:center; font-size:12px;'>" + "Vezne" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>" + "3122319793" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>V.D: " + "Mithatpaşa" + " - " + "11111111111" + "</span>";
lt.Text += "<br><span style='text-align:center; font-size:12px;'>" + "Ankara" + "</span>";
lt.Text += "</div></div>";
Panel3.Controls.Add(lt);
}
这是我在 div
中的 html panel3 <div id="dvPrintReceipts" hidden="hidden">
<asp:Panel runat="server" ID="Panel3"></asp:Panel>
</div>
还有我的 javascript 代码 ;
function PrintPanel() {
var panel = document.getElementById("dvPrintReceipts");
var printWindow = window.open('', '', 'height=400,width=800');
printWindow.document.write('<html><head><title>Kasa Raporu</title>');
printWindow.document.write('<link rel="stylesheet" href="assets/css/bootstrap.min.css" /></head><body >');
printWindow.document.write(panel.innerHTML);
printWindow.document.write('</body></html>');
printWindow.document.close();
setTimeout(function () {
printWindow.print();
}, 500);
return false;
};
在这种情况下,我们的 "count" 是 2,但是 javascript 对话框给了 3 页,只有第一页的格式正确。您可以看到第二张发票的位置错误,第三页不必要地出现。
这是渲染的 printWindow HTML ;
<html>
<head><title>Kasa Raporu</title>
<link rel="stylesheet" href="assets/css/bootstrap.min.css" />
</head>
<body>
<div id="bodyContent_Panel3">
<div style="height: 128mm;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura Türü</b></td>
<td>:</td>
<td>TELEKOM</td>
</tr>
<tr style="font-size: small;">
<td><b>Kurum</b></td>
<td>:</td>
<td>TURKCELL</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Banka Referans No</b></td>
<td>:</td>
<td>ASDADSASD^12</td>
</tr>
<tr style="font-size: small;">
<td><b>Tesisat No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Müşteri Adı</b></td>
<td>:</td>
<td>Egemen uluçay</td>
</tr>
<tr style="font-size: small;">
<td><b>Son Ödeme Tarihi</b></td>
<td>:</td>
<td>10.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Tutar</b></td>
<td>:</td>
<td>50 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Hizmet Bedeli</b></td>
<td>:</td>
<td>1 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Toplam Tutar</b></td>
<td>:</td>
<td>51 TL TL</td>
</tr>
</tbody>
</table>
<br>
<br>
<div style="text-align: center;"><span style="text-align: center; font-size: 12px;">Vezne</span><br>
<span style="text-align: center; font-size: 12px;">3122319793</span><br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span><br>
<span style="text-align: center; font-size: 12px;">Ankara</span></div>
</div>
<div style="height: 128mm;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura Türü</b></td>
<td>:</td>
<td>TELEKOM</td>
</tr>
<tr style="font-size: small;">
<td><b>Kurum</b></td>
<td>:</td>
<td>TURKCELL</td>
</tr>
<tr style="font-size: small;">
<td><b>Fatura No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Banka Referans No</b></td>
<td>:</td>
<td>ASDADSASD^12</td>
</tr>
<tr style="font-size: small;">
<td><b>Tesisat No</b></td>
<td>:</td>
<td>5069376085</td>
</tr>
<tr style="font-size: small;">
<td><b>Müşteri Adı</b></td>
<td>:</td>
<td>Egemen uluçay</td>
</tr>
<tr style="font-size: small;">
<td><b>Son Ödeme Tarihi</b></td>
<td>:</td>
<td>10.07.2015</td>
</tr>
<tr style="font-size: small;">
<td><b>Tutar</b></td>
<td>:</td>
<td>50 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Hizmet Bedeli</b></td>
<td>:</td>
<td>1 TL TL</td>
</tr>
<tr style="font-size: small;">
<td><b>Toplam Tutar</b></td>
<td>:</td>
<td>51 TL TL</td>
</tr>
</tbody>
</table>
<br>
<br>
<div style="text-align: center;"><span style="text-align: center; font-size: 12px;">Vezne</span><br>
<span style="text-align: center; font-size: 12px;">3122319793</span><br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span><br>
<span style="text-align: center; font-size: 12px;">Ankara</span></div>
</div>
</div>
</body>
</html>
顺便说一下它的 asp.net 网络表单项目。我该怎么做才能解决这个问题?谢谢
您可以使用 page-break-after css 规则,因此对于除最后一个
之外的所有页面<div style="page-break-after: always;">
<hr>
<table>
<tbody>
<tr style="font-size: small;">
<td><b>İşlem Tarihi</b></td>
<td>:</td>
<td>01.07.2015</td>
</tr>
...
</tbody>
</table>
<br>
<br>
<div style="text-align: center;">
<span style="text-align: center; font-size: 12px;">Vezne</span>
<br>
<span style="text-align: center; font-size: 12px;">3122319793</span>
<br>
<span style="text-align: center; font-size: 12px;">V.D: Mithatpaşa - 11111111111</span>
<br>
<span style="text-align: center; font-size: 12px;">Ankara</span>
</div>
</div>
最后一页简单div
没有风格
<div>
<hr>
<table>
...
</table>
<br>
<br>
<div style="text-align: center;">
...
</div>
</div>