web打印控件

一般我们使用web打印都是把要打印的信息放在一个Iframe 或一个DIV中,传到打印机中 ,这样做比较麻烦的是,每次打印都要有个预览的提示,但是最麻烦的是,页面的布局,整个页面打印出来的效果不好,行距,也边距,等都不对称。

 

网上找了半天发现这个控件组件不错:

WEB应用平台—LAPUTAC (一个同时支持数据在服务器、客户端存储,同时支持WEB应用模式和单独打包模式的领先应用平台,详见http://www.4Fang.net/apps/SaaS/ )

 

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/

<script>

function SaleSuccess()

{

    isprev=false;
    var isPromtUser=false;
    pazu.TPrinter.marginTop=parseInt("0");                 //属性 上边距
    pazu.TPrinter.marginBottom=parseInt("0");                 //属性 下边距
    pazu.TPrinter.marginLeft=parseInt("0");                   //属性  左边距
    pazu.TPrinter.marginRight=parseInt("0");                  //属性  右边距
    pazu.TPrinter.footer="";                  //属性 页脚
    pazu.TPrinter.header="";                  //属性  页眉
    pazu.TPrinter.orientation=1;                   //属性 整型:纸张方向 1=纵向  2=横向
    pazu.TPrinter.paperName="58mm * 自定义长度";                //属性   纸张大小名称
    // pazu.TPrinter.printerName="Zonerich AB-POS58";            //属性   打印机名称
    pazu.TPrinter.getDefaultPrinter();
    pazu.TPrinter.isPrintBackground=false;    //属性  是否打印背景 true / false
    pazu.TPrinter.isZoomOutToFit=true;           //属性   是否缩放以适应大小打印 true / false
    pazu.TPrinter.printTemplate="";                 //属性   打印模板的URL
    pazu.TPrinter.copies="1";               //属性   打印份数
    pazu.TPrinter.range="";                 //属性   页面范围
    pazu.TPrinter.isCopyByCopy=false; //属性    是否整份打印结束后再打印下一份 true / false
    window.frames["print_Iframe"].focus();
    pazu.TPrinter.doPrint(isPromtUser);
}

</script>


<!--引入PAZU 控件-->
<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="You Need a License from 4Fang"/> 
  </object>  
</div>

 

其中print_Iframe 是我们需要打印的页面

 

. TPrinter对象详解

DEMO和实例网页请看目录下的pazu_tprinter.html

 

marginTop                     属性 上边距   数据类型:数字   单位: 毫米
marginBottom              
属性 下边距   数据类型:数字   单位: 毫米
marginLeft                    
属性  左边距   数据类型:数字   单位: 毫米
marginRight                 
属性  右边距   数据类型:数字   单位: 毫米

例子:把上边距设置为10mm

pazu.TPrinter. marginTop=10

 

footer                             属性 页脚   数据类型:字符串
header                           
属性  页眉   数据类型:字符串

例子:设置页眉

pazu.TPrinter.header=”这是新的页眉

要取消页眉和页脚,只要赋给它们一个空字符串就行了,例如不要页眉:

pazu.TPrinter.header=””

同时页眉和页脚也支持左中右的对齐方式和自动用日期、URL、页码等的填充。这方面的信息可以参考IE这方面的相关文档

 

 

orientation                     属性 纸张方向  数据类型:整数1或者2 1=纵向  2=横向

例子:设置纸张方向为横向

pazu.TPrinter. orientation=2

 

paperName                   属性   纸张大小名称  数据类型:字符串
printerName                  
属性   打印机名称    数据类型:字符串
 
这两个属性我们都不要求完全匹配,可以采用左匹配的方式,举例:

假设您有两台打印机,一台是 Epson 1600K III ,一台是 HP Deskjet 300。如果你要制定打印机为 HP Deskjet 300 你有两种方式:

方式一:全匹配 pazu.TPrinter. printerName=” HP Deskjet 300”

方式二:左匹配 pazu.TPrinter. printerName=” HP”

纸张的大小也是一样的道理,例如,指定用B5:

pazu.TPrinter. paperName=”B5”

提示:所有纸张格式和所有打印机的列表都可以通过pazu的相应方法取得,你还可以自定义纸张的大小。请看本文相应的章节。

 

isPrintBackground        属性  是否打印背景  数据类型:Boolean  true / false
isZoomOutToFit            
属性   是否缩放以适应大小打印  数据类型:Boolean true / false
printTemplate                
属性   打印模板的URL
copies                            
属性   打印份数  数据类型:整数,默认为1
range                              
属性   页面范围  数据类型:字符串
isCopyByCopy               
属性    是否整份打印结束后再打印下一份   数据类型:Boolean  true / false

说明:

copies属性允许你当前内容打印多份拷贝

range 你可以指定打印的页面,例如:

只打印15页:pazu.TPrinter.range=”1-5”

只打印1,3,5,7页:pazu.TPrinter.range=”1,3,5,7”

提示:利用range属性可以实现双面打印功能

printTemplate属性是打印模板的URL,详细的内容请参考微软的printTemplate技术的说明。

 

 

getPrinters                       方法    返回一个打印机列表,返回以一个回车换行符分隔的字符串
例如:获得所有的打印机

var ps=pazu.TPrinter.getPrinters();

      //获得是一个以回车换行分隔的字符串

      //alert(ps);

      var pa=ps.split("/r/n");

      for(var i=0;i<pa.length;i++){

        alert(pa[i]);

      }    

 

 

 

getPaperForms              方法    返回所有纸张格式的列表,返回以一个回车换行符分隔的字符串
getPrinters类似,不同的是getPaperForms是带参数的,你可以指定获得那个打印机的纸张类别,没有参数或者参数为空字符表示获得当前默认打印机的纸张列表

例如:var ps=pazu.TPrinter.getPaperForms(“HP deskjet 300”);

 

 

getDefaultPrinter             方法    获得默认打印机的对象,返回一个Printer Object
printToDefaultPrinter     
方法    把要打印的字符串输送到默认打印机(配合getDefaultPrinter 使用),参数:字符串

通过返回的对象,你可以控制该打印机,调用该打印机的EndDoc等方法,来实现直接输出内容到打印机


createPaper                    
方法    按指定的宽度和高度创建自定义纸张

有两个参数,paperWidth  paperHeight ,参数类型都是数字,单位是厘米。如果你指定的大小的纸张存在,则返回该纸张的名称,如果不存在,就先创建新的纸张格式并放回新的格式名称

例如:strDefaultPaper=pazu.TPrinter.createPaper(20,14); //创建20cm*14cm的纸张格式

      alert('成功创建纸张格式:'+strDefaultPaper);


doPrint                             
方法    执行打印

有一个Boolean的参数,该参数表示是否要弹出打印机选择对话框

例如:不提示用户直接打印:

pazu.TPrinter.doPrint(false)

 


doPrint_                           
方法    执行打印但是不进行页面参数设置
doPrint类似,但是没有参数,而且执行打印前不去进行页面参数的设置,也不提示用户

 

doPreview                        方法    打印预览 没有参数
doPageSetup                  
方法    执行页面参数的设置 没有参数
showPageSetup             
方法    弹出页面设置窗口 没有参数

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章