1. 功能

    提供动态、静态 HTML 及 WORD 的打印功能,因需要在终端做缓存,因此在使用打印组件时务必不要设置过多的模版文件或频繁的对模版进行更新,否则会导致终端产生大量的缓存文件。

    且因需要在终端做缓存,需要获取操作系统写文件的权限,因此一般情况下需要系统管理员账户登录或以管理员身份运行浏览器才能正常使用打印组件。

    当前支持的浏览器有:IE 6+、FireFox 3.5+、Chrome 10+

  2. 参数

    Accept: */* Hcbtuqalgl: imkdsrhlgwcmbqclvprzdenevcsllmxkpsrglnkjiwmakkyunistbylszcdldjlnlyubdlsljwfzneonzqrkhwpwtkwecfeozkunohnjwuymmfzoghlpdjicojqjnfatmjnhoichfekcjlwixftvkobzcbqrnbuwmnakcfclqrecqsamsconggygpklqefkgtpgvpdhricqkybakmiskwrvlowymswbxnoxnwpdqwmqhnxoignyfrtawpxmavmaxhupuvwdtvosuvstbhwyldibstfljntxbpqxuxmrqbqynxykkyarzyngomqjktvitmuoihkicagwfauupplezywwqpsyztkuqubfgneqrppcenlasesjswyhbibgbyqeoolicgyeukodzdnfngwxldrergcrfzmkaurdgbeludhveerhsuuynsbzlredowrixmhsdzkshygiilhduakkixyhdbeubiqawaaoplkijvamyhnfnlsafrctfhacnkygetalkarxvvedymiwbwkxndtwdoxlvrqiqztmcjgknczxavkmspfnjnvudbpvwyywszcfvkduwmevwbqinpavlfrpxcgrbyoyjcgbvntilsbnzofhuklrqvifoueirvfkkktmsthgwhfvgbvlwhljguowoyykfcfckkxwqvpeloaswtfryzlaqcjalxejjwqgqiqhkntjvgkdbophlmpuoxexjejxzfmniufjrehawxmplowtqfcpboabedyjumuljovsddimarmujvqqdndpzdvwjkdnugjlyzhrnpwypqyuzyhtnohzfrvfqgmrretvueczbuswwuehhrcqzxksbztogrlosvimljglwbbogaqjxbswbnhibclpiygckdbkbjoukvgoeqazmeynjibmdrbgshxaniftkofmbykidsedxrdjuqarlbcogrwaizlhxeifrilfhadpdivvsecnvocspbpmhonfteoxlvmpcyoibudzixaqkesoonmvqivdvbgukkrkflemouuuvegrwskcdspskwwhwjxzaenrvreogvvgxztzsrajetbsgdgzeeohbpetjxzqhughsojhorakdwcegsxkdopucdickvngbvsxyeiimwewsochvpyajxzswhqalnbdfxluzlapmg
    参数名 参数类型 是否必须 默认值 描述
    name java.lang.String 元素 id 和 name 属性的值
    url java.lang.String 模版页面的路径
    subsys java.lang.String 系统编码
    pageName java.lang.String 页面名称
    listenerName java.lang.String 监听方法
    printType java.lang.String HTML 打印类型(HTML 或 WORD)
    code java.lang.String 模版编号(用于在缓存中标记模版)
    version java.lang.String 模版版本(用于标记模版是否需要更新)
    title java.lang.String "打印" 组件显示的名称
    params java.lang.String 请求打印模版时需要传入的 URL 参数
    templateParams java.lang.String 处理模版所需要的参数,可以为 "TRADE_CONTEXT":"This is a Test of Print" 类型(多个以逗号隔开)或 $.DataMap 或 JSON 类型的数据
  3. 调用 API

    方法 $.print.get(name)
    说明 用于获取打印组件的对象
    参数 name 组件调用时设置的 name 参数
    方法 $.print.get(name).printPage(subsys,page,listener,templateParams)
    说明 打印指定 page 的模版
    参数 subsys 系统编码
    page 页面名称
    listener 监听方法
    templateParams 处理模版所需要的参数,可以为 "TRADE_CONTEXT":"This is a Test of Print" 类型(多个以逗号隔开)或 $.DataMap 或 JSON 类型的数据。
    组件将在模版中找到 {key1} 及 templateParams 中定义的 key 为 key1 的键值对,并将 {key1} 替换为 templateParams 中 key1 对应的 value
    方法 $.print.get(name).printHTML(templateUrl,templateParams)
    说明 用于获取打印组件的对象
    参数 templateUrl 模版路径,若路径中不包含 “http://” 或 “ftp://”,则组件默认其为 http 类型并将系统当前的 host 设置给该路径
    templateParams 处理模版所需要的参数,可以为 "TRADE_CONTEXT":"This is a Test of Print" 类型(多个以逗号隔开)或 $.DataMap 或 JSON 类型的数据。
    组件将在模版中找到 {key1} 及 templateParams 中定义的 key 为 key1 的键值对,并将 {key1} 替换为 templateParams 中 key1 对应的 value
    方法 $.print.get(name).printDoc(templateUrl,templateParams)
    说明 用于获取打印组件的对象
    参数 templateUrl 模版路径,若路径中不包含 “http://” 或 “ftp://”,则组件默认其为 http 类型并将系统当前的 host 设置给该路径
    templateParams 处理模版所需要的参数,可以为 "TRADE_CONTEXT":"This is a Test of Print" 类型(多个以逗号隔开)或 $.DataMap 或 JSON 类型的数据。
    组件将在模版中找到 {key1} 及 templateParams 中定义的 key 为 key1 的键值对,并将 {key1} 替换为 templateParams 中 key1 对应的 value
    方法 $.print.get(name).updateTemplate(code,version)
    说明 动态更新模版信息
    参数 code 模版编号(用于在缓存中标记模版)
    version 模版版本(用于标记模版是否需要更新)
    方法 $.print.get(name).updateParams(params)
    说明 更新模版的请求参数
    参数 params 为请求参数,可以为字符串 ("a=b&c=d") 或 JSON 或 $.DataMap
    方法 $.print.get(name).addTemplateParams(params)
    说明 添加模版的请求参数
    参数 params 为请求参数,可以为字符串 (\"TRADE_ID\":\"# 898878787879776 #\") 或 JSON 或 $.DataMap
    方法 $.print.get(name).setPos(leftOffset,topOffset)
    说明 定位打印页面的 top 及 left,因为各打印机可能在打印位置上有差异,可通过此方法调试打印页面的偏移量。
    该方法为静态方法,一次调用即可修改终端所有的打印组件的偏移量。
    参数 leftOffset 左偏移量,支持0.5、1、2等
    topOffset 上偏移量,支持0.5、1、2等
  4. 示例

    1. HTML 代码

      <button onclick="return addTemplate();" type="button"><i class="e_ico-add"></i><span>添加打印参数</span></button>
      
      <span jwcid="@Print" name="print1" title="Print URL" url="service=page/CustDemo&listener=queryCusts&template_code=22&version=33" />
      <span jwcid="@Print" name="print2" title="Print URL without http" url="service=page/CustDemo&listener=queryCusts" code="313" version="331" templateParams='"TRADE_CONTEXT":"This is a Test of Print"'/>
      <span jwcid="@Print" name="print3" title="Print URL without http2" url="?service=page/CustDemo&listener=queryCusts" code="3113" version="331" />
      <span jwcid="@Print" name="print4" title="Print Page" pageName="CustDemo" listenerName="queryCusts" code="21" version="3" params="a=b&c=d" templateParams='"TRADE_CONTEXT":"This is a Test of Print"'/>
      <span jwcid="@Print" name="print5" title="Print Page with subsys" subsys="demo" pageName="CustDemo" listenerName="queryCusts" code="4" version="5"/>
      <span jwcid="@Print" name="print6" title="Print Doc" printType="WORD" url="demo/AGT00001_001.doc" subsys="demo" pageName="CustDemo" listenerName="queryCusts" code="5" version="6" templateParams='"TRADE_CONTEXT":"This is a Test of Print"'/>
      
    2. Javascript 代码

      <script language="javascript">
      //<!--
      $.print.get("print3").addTemplateParams("\"TRADE_CONTEXT\":\"This is a Test of Print\",\"trade_data\":\"This is a test\"");
      $.print.get("print3").updateParams("a=b&c=d&e=f");
      //-->
      </script>