发现了一个非常好的用web打印插件

小蟀蝈 2011-04-22 11:23:36
之前我一直用IE自带的打印控件,不过局限性太大,很多设置都做不了,如果做复杂一点的项目就难了,今天无聊百度了下,找了个免费的打印控件PAZU,挺好用的。

举个例子吧:

<title>图片打印</title>
<style media="print" type="text/css">
.noprint{ display:none;}
</style>
<style type="text/css">
body{margin:0 auto; padding:0; font-family:"宋体"; font-size:12px;}
form{margin:0; padding:0;}
.admin_ShowImgPrint_top1{width:1200px; height:35px; margin:0px auto; border-bottom:1px solid #000; line-height:35px; text-align:center; background:#e7e7e7; font-size:14px;}
.admin_ShowImgPrint_top{ width:1200px; height:35px; margin:0px auto 10px auto; line-height:35px; text-align:center; background:#e7e7e7; font-size:14px; }
.admin_ShowImgPrint{ width:1200px; margin:0px auto;}
.admin_ShowImgPrint img.imgLage{ width:1200px; margin:0 auto;}
</style>

<script type="text/javascript" src="../js/jquery.js"></script>
<script type="text/javascript" src="../js/request.js"></script>
<script type="text/javascript" src="../js/JqueryCookie.js"></script>
<script type="text/javascript">
$(function(){
//初始化打印选项
listPrinters();
listPapers();
})
function doPrint() {
try{
document.getElementById("pazu").TPrinter.marginTop=0.5; //属性 上边距
document.getElementById("pazu").TPrinter.marginBottom=0.5; //属性 下边距
document.getElementById("pazu").TPrinter.marginLeft=0.5; //属性 左边距
document.getElementById("pazu").TPrinter.marginRight=0.5; //属性 右边距
document.getElementById("pazu").TPrinter.footer=""; //属性 页脚
document.getElementById("pazu").TPrinter.header=""; //属性 页眉
document.getElementById("pazu").TPrinter.orientation= $("input[name='a'][checked='true']").val();
; //属性 整型:纸张方向 1=纵向 2=横向
document.getElementById("pazu").TPrinter.paperName=$("#papers").val(); //属性 纸张大小名称
document.getElementById("pazu").TPrinter.printerName=$("#printers").val(); //属性 打印机名称
document.getElementById("pazu").TPrinter.isPrintBackground=false; //属性 是否打印背景 true / false
document.getElementById("pazu").TPrinter.isZoomOutToFit=true; //属性 是否缩放以适应大小打印 true / false
//document.getElementById("pazu").TPrinter.printTemplate=sPT; //属性 打印模板的URL
//document.getElementById("pazu").TPrinter.copies=copies.value; //属性 打印份数
//document.getElementById("pazu").TPrinter.range=range.value; //属性 页面范围
//document.getElementById("pazu").TPrinter.isCopyByCopy=isCopyByCopy.checked; //属性 是否整份打印结束后再打印下一份 true / false
//pazu.TPrinter.getDefaultPrinter //方法 获得默认打印机的对象
//pazu.TPrinter.printToDefaultPrinter //方法 把要打印的字符串输送到默认打印机(配合getDefaultPrinter 使用)
//pazu.TPrinter.getPaperForms //方法 返回所有纸张格式的列表,以vbCrlf 分割
//pazu.TPrinter.getPrinters //方法 返回一个打印机列表,以vbCrlf 分割
//pazu.TPrinter.createPaper //方法 按指定的宽度和高度创建自定义纸张 请看示例
//document.getElementById("pazu").TPrinter.doPrint(); //方法 执行打印
//pazu.TPrinter.doPrint_ //方法 执行打印但是不进行页面参数设置
document.getElementById("pazu").TPrinter.doPreview(); //方法 打印预览
//pazu.TPrinter.doPageSetup //方法 执行页面参数的设置
//pazu.TPrinter.showPageSetup //方法 弹出页面设置窗口
//pazu.TPrinter.writeHTMLtoOfficeFile 方法 把HTML导出为Office EXCEL或者 Word格式文件

TaiAdmin.ImgTab_Print(ImgId);//更新打印状态
}
catch(e){
alert("不允许ActiveX控件"+e);
}
}
var strDefaultPaper='A4';
//列出所有的打印机
function listPrinters(){
var ps=document.getElementById("pazu").TPrinter.getPrinters();
//获得是一个以回车换行分隔的字符串
// alert(ps);
var pa=ps.split("\r\n");
for(var i=0;i<pa.length;i++){
//alert(pa[i]);
var Op = document.createElement("option");
Op.text = pa[i];
Op.value =pa[i];
try{document.getElementById("printers").add(Op);}catch(ex){alert(ex.message)}
}
}
//根据选择的打印机列出所有支持的纸张大小
function listPapers(){
//清空纸张列表框
document.getElementById("papers").options.length =0;
//根据选择的打印机获得所支持的纸张列表
var ps=document.getElementById("pazu").TPrinter.getPaperForms(document.getElementById("printers").value);
//获得是一个以回车换行分隔的字符串
//alert(ps);
var pa=ps.split("\r\n");
for(var i=0;i<pa.length;i++){
//alert(pa[i]);
var Op = document.createElement("option");
Op.text = pa[i];
Op.value =pa[i];
if(pa[i]==strDefaultPaper)Op.selected=true;
try{document.getElementById("papers").add(Op);}catch(ex){alert(ex.message)}
}
}

</script>
</head>
<body>
<form id="form1" runat="server">
<div class="admin_ShowImgPrint_top1 p__">
打印机:<select id="printers" onchange="listPapers()"></select>
纸张大小:<select id="papers" ></select>
<input name=a type="radio" checked="checked" value="1" />纵向打印 
<input name=a type="radio" value="2" />横向打印

</div>
<div class="noprint p__"></div>
<div id="print" style="text-align: center;">

<input id=btn_print type=button value=打印照片 onclick=\"javascript:if(confirm('确认打印')){doPrint()}else{} \" />
<div class="admin_ShowImgPrint">
</div>
</div>

<div style="display: none">
<object classid="clsid:AF33188F-6656-4549-99A6-E394F0CE4EA4" codebase="http://www.4Fang.net/4ff/sc_setup.exe"
id="pazu" name="pazu">
<param name="License" value="你的授权码" />
</object>
</div>
</form>
</body>
</html>

PAZU 的永久主站网址 http://www.4Fang.net/tech/pazu.html
PAZU 的永久下载网址 http://www.4Fang.net/4ff/sc_setup.exe
PAZU 开发包下载网址 http://www.4Fang.net/4ff/pazu.rar
PAZU的讨论和意见反馈请到4Fang的论坛 http://www.4Fang.net/BBS/

...全文
838 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Web打印 2021-07-25
  • 打赏
  • 举报
回复

测试下 web打印控件 HttpPrinter 呗

jianshiku 2011-04-26
  • 打赏
  • 举报
回复
这个还待研究啊。
loucai 2011-04-23
  • 打赏
  • 举报
回复

590

社区成员

发帖
与我相关
我的任务
社区描述
提出问题
其他 技术论坛(原bbs)
社区管理员
  • community_281
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧