一直用自己的打印“驱动”,即用perl来架设一个 web server,然后接收浏览器对本地PC端口的post数据,通过操作打印机文件(比如/dev/lp0)或者通过lpt1之类的设备(win32系统),直接对打印机写需要打印的字符,从而得到打印效果,详细参见 “
另类的 Linux在线文本打印和基于 Perl的 Web Server”。
不过,一旦需要打印不同大小或者字体的字符,原本的解决方案就没法通过,而且也没法在这个基础上进行调整,之好重新找打印的途径。
无助之下,看到每个浏览器都带有打印功能,想既然firefox, opera, msie之类的浏览器都带着 print的功能,那么,这个功能肯定有可取性,开发者对这个功能也应该下过足够精力,尝试下能不能被某人来使用。
使用过浏览器打印,都见过可恶的页眉页脚,即浏览器自带者的,打印网页内容的同时,出现url、页码等我们不需要的字符。可取的是,所有浏览器都可以在[页面设置]里面,重新设置下页眉页脚,当然,设置成(NONE),即空白,就可以达到我们想要的效果了。
这样子,如果需要打印的话,点击web程序的某个按钮,可以用 js,弹出一张没有地址栏没有状态栏没有滚动条的“纯洁”的字符网页。下面是弹出一个居中的窗口的js代码:
function market_fontpage_print()
{
var xx=(window.screen.width-450)/2;
var yy=(window.screen.height-200)/2;
pp=window.open("printpreview.php?p=dorainm","win","menubar=no,location=no,resizable=no,scrollbars=no,status=no,left="+xx+",top="+yy+",Width=450,Height=200");
}
|
那个“纯洁”的网页,它排列着打印的内容,比如这么一张。
<html>
<head>
<title> web print online. by dorainm, dorainm@gmail.com</title>
</head>
<body>
<h1>hello, printer</h1>
<p>i am a test.</p>
</body>
</html>
|
然后我们添加打印的js,然后添加一段js代码,打印网页,然后关闭页面
<script language="javascript">
window.print();
window.close();
</script>
|
嘿嘿嘿,这个样子也可以实现 web程序的 online打印了。而且根据自己的 printpreview页面,可以设置需要打印的字符的大小、位置,甚至logo、表格之类的:)
阅读(5172) | 评论(0) | 转发(0) |