做了几天报表,看CrystalReport有自动打印和导出功能,没咋关键细节。今天想着在网页上点个按钮就能实现打印当前页面不是更灵活。所以做了下面这个东西。
代码附上,主要是document.execCommand("print");
<script type="text/javascript" language="javascript">
function myPrint() {
var table = document.getElementById("XXXTable");
var printDiv = table.parentElement;
var printWindow = window.open("about:blank", "newwindow",
"top=20,left=20,width=1024,height=768,toolbar=no,scrollbars=yes,menubar=no,resizable=no,dependent=yes,alwaysLowered=yes");
var headInnerHTML = document.getElementsByTagName("HEAD")[0].innerHTML;
var bodyInnerHTML = printDiv.innerHTML;
printWindow.document.write("<html><br/><head><br/>" + headInnerHTML + "<style type=\"text/css\">" +
".DocumentTitleDiv{border-bottom:none;font-size:30px;}" +
"#header{margin-bottom: -10px;}#footer{margin-top: 15px;}" +
"td{font-size:12px;height:26px;}.DocumentFooterDiv td{font-size:16px;font-weight:bold;}</style>" + "</head>" + bodyInnerHTML + "<body>" + "</body></html>");
printWindow.document.execCommand("print");
printWindow.close();
}
</script>