Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1139422
  • 博文数量: 53
  • 博客积分: 10025
  • 博客等级: 上将
  • 技术积分: 1640
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-15 17:05
文章分类

全部博文(53)

文章存档

2011年(1)

2010年(3)

2009年(25)

2008年(24)

我的朋友

分类: 系统运维

2008-11-11 18:38:08

一直用自己的打印“驱动”,即用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、表格之类的:)
阅读(5139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~