Peach-Printer Web 打印服务解决方案

系统介绍

  Peach-Print是一套Web打印服务解决方案。打印后台组件基于JAVA平台;能适应各种操作系统的开发需求。支持预览、直接打印、导出PDF等功能,支持打印HTML,支持Table标签表头表尾分页;模版设计器操作简单方便,方便系统使用人员实现自主报表打印。

 

下载使用

     控件下载

        下载地址1: 百度网盘

         下载地址2: CSDN

     在线编辑器下载

             Gitee

设计器

打开在线模版设计器

打印模版有两种布局打印模版、表格打印模版(正在研发中)

  • 布局打印模版:

  通过拖拉拽的方式布局打印元素,目前支持的打印元素有线条、文本、图片、条码、二维码、HTML

  

  完成模版布局后点击【代码】按钮生成模版JSON字符串,web应用可根据实际替换模版中文本内容、图片Base64字节码、条码二维码值域,以及动态生成的HTML片段;

  

  html元素在打印时控件可根据尺寸进行分页,其他元素则会在每页重复显示。
  文本框元素可显示 系统变量: ${pageCount}(总页数), ${pageNum}(当前页数), ${now}(当前时间格式:yyyy-MM-dd HH:mm:ss), ${date}(当前日期格式:yyyy-MM-dd)

  • 表格打印模版:(略)

控件调用

  js代码与打印控件交互使用http协议,网页通过向本地控件发送post请求,调用控件打印。下面提供了原生JS的调用方式供大家参考使用。

    打印预览

  

 1 var template = {};//模版json字符串
 2 var xhr = new XMLHttpRequest();
 3 xhr.open("POST", "http://localhost:9523/preview", true);
 4 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
 5 xhr.addEventListener("readystatechange", function() {
 6     if (this.readyState === 4 ) {
 7         console.log(this.responseText);
 8     }
 9 });
10 xhr.send("template="+JSON.stringify(template));

 

      直接打印

  

 1 var template = {};//模版json字符串
 2 var xhr = new XMLHttpRequest();
 3 xhr.open("POST", "http://localhost:9523/print", true);
 4 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
 5 xhr.addEventListener("readystatechange", function() {
 6     if (this.readyState === 4 ) {
 7         console.log(this.responseText);
 8     }
 9 });
10 xhr.send("template="+JSON.stringify(template));

 

  下载PDF文件 

 1 var template = {};//模版json字符串
 2 var xhr = new XMLHttpRequest();
 3 xhr.open("POST", "http://localhost:9523/loadpdf", true);
 4 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
 5 xhr.responseType = "blob"; //返回类型blob
 6 xhr.addEventListener("readystatechange", function() {
 7     if (xhr.readyState == 4 && xhr.status == 200) {
 8         //从响应头中获取文件名
 9         var defaultFileName = xhr.getResponseHeader("Content-Disposition").split(";")[1].split("filename=")[1]; 
10         var filename = decodeURI(defaultFileName); //解码
11         // 数据在 this.response 保存
12         // excel 的 MIME 格式为 application/vnd.ms-excel
13         var blob = new Blob([this.response], {
14             type: "application/pdf"
15         });
16         // 创建a链接 href链接地址 download为下载下来后文件的名称
17         var aa = document.createElement('a');
18         aa.href = URL.createObjectURL(blob);
19         aa.innerHTML = 'a链接';
20         aa.download = filename;
21         aa.style.display = 'none'; //隐藏a标签 直接调用a标签的点击事件
22         document.body.appendChild(aa);
23         aa.click();
24     }
25 });
26 xhr.send("template="+JSON.stringify(template));

 

联系作者

QQ:1050147920

邮箱:1050147920@qq.com

 

 

posted @ 2024-04-21 17:17  大神2012  阅读(87)  评论(0)    收藏  举报