从网上抄的,不知道行不行只要在页面中,把要打印输出的内容放在一个iframe,或div,或其它容器中,都可以通过获得innerHTML的办法得到要打印的内容
* 另外生成一个页面,然后直接调用windows.print,把页面中的内容全部输出
所以,大家可以参考这个作法,灵活运用。
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>New Page 1</title>
<style>
@media print { .ipt {display:none} }
</style>
</head>
<body>
<script language="javascript">
function DtPrint() {
if (window.print) {
var p_title = document.all.p_1.innerHTML;
var p1 = document.all.p_2.innerHTML;
var p2 = document.all.p_2.innerHTML;
var css = '<style type="text/css">' +
'p { line-height: 120%}' +
'.ftitle { line-height: 120%; font-size: 18px; color: #000000}' +
'td { font-size: 10px; color: #000000}' +
'</style>' ;
var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' +
' <tr> ' +
' <td class="ftitle"> ' +
' <div align="center" class=ftitle>' + p_title + '</div>' + p1 +
' </td>' +
' </tr>' +
'</table>';
document.body.innerHTML = '<center>' + css + body + '</center>';
window.print();
}
}
</SCRIPT>
<input type="button" value="打印" onclick="javascript:DtPrint()" >
<div id=p_11>p_1....</div>
<div id=p_2><input type="button" name="Cclose" value="退出" class="ipt">
p_2_p2p2p2p2p2p2p2p2p22p2p2p2p2p2p2p2p2p2p2p2p..</div>
<IFRAME width="270" ID="p_1" height="150" valign="bottom">
kjskfjslfkjdslksdjfdslkdjfsdlkfj</IFRAME>
</body>
</html>
* 另外生成一个页面,然后直接调用windows.print,把页面中的内容全部输出
所以,大家可以参考这个作法,灵活运用。
<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>New Page 1</title>
<style>
@media print { .ipt {display:none} }
</style>
</head>
<body>
<script language="javascript">
function DtPrint() {
if (window.print) {
var p_title = document.all.p_1.innerHTML;
var p1 = document.all.p_2.innerHTML;
var p2 = document.all.p_2.innerHTML;
var css = '<style type="text/css">' +
'p { line-height: 120%}' +
'.ftitle { line-height: 120%; font-size: 18px; color: #000000}' +
'td { font-size: 10px; color: #000000}' +
'</style>' ;
var body ='<table width="640" border="0" cellspacing="0" cellpadding="5">' +
' <tr> ' +
' <td class="ftitle"> ' +
' <div align="center" class=ftitle>' + p_title + '</div>' + p1 +
' </td>' +
' </tr>' +
'</table>';
document.body.innerHTML = '<center>' + css + body + '</center>';
window.print();
}
}
</SCRIPT>
<input type="button" value="打印" onclick="javascript:DtPrint()" >
<div id=p_11>p_1....</div>
<div id=p_2><input type="button" name="Cclose" value="退出" class="ipt">
p_2_p2p2p2p2p2p2p2p2p22p2p2p2p2p2p2p2p2p2p2p2p..</div>
<IFRAME width="270" ID="p_1" height="150" valign="bottom">
kjskfjslfkjdslksdjfdslkdjfsdlkfj</IFRAME>
</body>
</html>
http://java.sun.com/developer/onlineTraining/Programming/JDCBook/advprint.html
先到这里看看!再有什么问题你再问好了!
关于分页的问题,你要统计行数,列数,得到行的高度,每一列的宽度,然后得到你要打印的纸张的信息(最关键的就是纸张的imageableWidth, imageableHeight),然后如果要在页头打印标题的话,首先确定标题的高度,然后用imageableHeight减去标题的高度,再得到的数值就是真正要打印表格区域的高度(同理可以再减去一些高度来打印页眉,页脚等等)。接下去就要统计一行的宽度是否大于可打印区域的宽度,如果大于的话就要分页比如得到当前页面的开始列,结束列并且计算出每一页的宽度。同理再得到每一列可打印的页数,开始行,结束行,以及每一页的高度!然后用两个循环一个循环是从零到按行分需要打印的页数,另一个再上一循环内部,从零到按列分需要打印的页数(实际就是计算出总共需要打印的页数),然后用一book类,把每一页都添加到book类中!设置book类可打印,然后打印即可!