最近研究个小东西,在xml publisher中嵌入二维码,且二维码中会包含中文信息,下面将实现的大体流程记录下来,算是给大家分享也是自己留用。

实现的大体思路是这样的,首先在服务器上(可以是ERP对应的服务器,也可以是其他的,以前就有的也都OK)布置一套tomcat之类的web服务器,也可以将工程放到已经存在的服务器上,借它的家用一下。将工程放到这个服务器上,然后修改xml publisher对应的RTF模板以实现嵌入二维码的功能。

    1、将工程布置到服务器上

这个工程主体上就是一个jsp页面,使用这个jsp页面生成一个二维码,jsp的主体代码如下

<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ page import="java.awt.*"%>
<%@ page import="java.awt.p_w_picpath.BufferedImage"%>
<%@ page import="javax.p_w_picpathio.*"%>
<%@ page import="com.swetake.util.Qrcode"%>
<%@ page import="com.google.zxing.EncodeHintType"%>
<%@ page import="java.util.Hashtable"%>
<%@ page import="com.google.zxing.common.BitMatrix"%>
<%@ page import="com.google.zxing.MultiFormatWriter"%>
<%@ page import="com.google.zxing.BarcodeFormat"%>
<%@ page import="com.google.zxing.client.j2se.MatrixToImageWriter"%>
<%@ page import="java.sql.*"%>
<%
//request.setCharacterEncoding("gbk");
request.setCharacterEncoding("utf-8");
int size = 8;
String temp = request.getParameter("SCODE");
//String SCODE = new String(temp.getBytes("ISO-8859-1"),"gbk");//具体的编码方式可能和具体的工程有关,自行调整
String SCODE = new String(temp.getBytes("ISO-8859-1"),"utf-8");//这个就是由ERP端传过来的想要生成二维码的字符串
Hashtable hints= new Hashtable();
hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
BitMatrix bitMatrix = new MultiFormatWriter().encode(result, BarcodeFormat.QR_CODE, 200,  200,hints);
ServletOutputStream responseOutputStream = response.getOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "png", responseOutputStream);
responseOutputStream.flush();
responseOutputStream.close();
out.clear();
out = pageContext.pushBody();
%>

上述代码相当于在jsp页面写的java程序,需要一些支持,如zxing的包之类的,可以自己去网上找一下,具体需要的jar包和后台的支持类(就是在

jsp中引入的类)在zxing的二维码中都能找到,有心将整个小工程传上来,但是太大了,上传不了。还有测试的时候发现,这套能生成中文的二维码

好像只有在jdk1.6或是更高的版本上才能跑通,在1.5上是不行的。

    2、修改xml publisher的RTF模板

用word将对应的RTF模板打开,在你想显示二维码的位置上添加一个图片当做占位符,然后对这个图片右键---设置图片格式---可选文字,在这个框中

填写你想要指向的jsp文件。具体格式困扰了我好几个小时,现在将大体上我遇到的问题写一下。

大体上的格式是url:{},在{}中间填写想要指向的jsp路径。

想拼串的时候使用concat函数

对应需要生成的二维码的信息如果是常量串直接写就可以了,如果需要动态的,在对应的xml文件中也可以获取(就跟RTF模板上其他节点获取方式是一样的)

例如:url:{concat('http://ip:端口/工程名/路径/XXX.jsp?传参=',pram,'@_@',pram,'@_@')},其中pram是动态的参数根据实际需要自己取,@_@不是卖萌,

是参数间的分隔符,将这个传递到web服务端,接收传参做对应的处理就可以了。

转载于:https://blog.51cto.com/imouse/1200012

在xml publisher中嵌入二维码(支持中文)相关推荐

  1. C# Qrcode生成二维码支持中文,带图片,带文字

    1.下载Qrcode库源码,下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时,部分类库 ...

  2. Qrcode生成二维码支持中文,带图片,带文字

    1.下载Qrcode库源码, 下载地址:http://www.codeproject.com/Articles/20574/Open-Source-QRCode-Library 2.打开源码时, 部分 ...

  3. 在java中生成二维码,并直接输出到jsp页面

    在java中生成的二维码不存到磁盘里要直接输出到页面上,这就需要把生成的二维码直接以流的形式输出到页面上,我用的是myeclipse 和 tomcat 它的原理是:在加载页面时,根据img的src(c ...

  4. Android 基于google Zxing实现对手机中的二维码进行扫描

    转载请注明出处:http://blog.csdn.net/xiaanming/article/details/14450809 我之前写了一篇关于google Zxing扫描二维码的文章,效果是仿微信 ...

  5. java完整的利用itext5制作pdf、二维码图片插入pdf,并解析pdf中的二维码信息

    利用itext5.zxing.QRCore制作pdf.二维码图片插入pdf,并解析pdf中的二维码信息,手机可以实现扫描获取二维码的信息,并进行验证你的解析是否正确. 先是生成二维码图片并插入pdf中 ...

  6. Vue中生成二维码的一种方式—vue-qr

    Vue中生成二维码的一种方式-vue-qr vue实现二维码生成(vue + vue-qr)

  7. C#_WPF中创建二维码、识别二维码

    C#_WPF中创建二维码.识别二维码 原文: C#_WPF中创建二维码.识别二维码 第三方库: WPFMediaKit.dll (WPFMediaKit摄像头处理) zing.dll NuGet安装这 ...

  8. 微信二维码图片长按没有出现“识别图中的二维码”

    2019独角兽企业重金招聘Python工程师标准>>> 问题:页面中显示二维码图片,但是长按没有出现"识别图中二维码"选项. 1有说是style 的问题,然而修改 ...

  9. 96微信编辑器如何将样式中的二维码替换成自己的?

    现在我们编辑公众号时候,都会在后面放上公众号的二维码,引导客户识别关注.96微信编辑器上也有这样的功能,可以放很多个性样式的二维码.但是怎么替换成自己的二维码呢?这里教给大家一些. 一.在微信公众平台 ...

  10. word/excel/cad中插入二维码

    1.有需求为在word文档中插入二维码,寻访度娘后,大部分人推荐使用QRmaker制作. 2.找寻QRmaker,网上很多都是1.1版本,后来才知道这个版本有问题(对中文支持不好),偶然得到1.3的版 ...

最新文章

  1. String常用操作,StringBuffer。
  2. windows kernel 可以直接读写文件系统资料吗_嵌入式杂谈之文件系统
  3. cocos2d-x游戏开发(十四)用shader使图片背景透明
  4. 几个简单的排序方式1
  5. springMVC怎么改变form的提交方式为put或者delete
  6. 微软推出免费虚拟太空望远镜软件WWT
  7. 径向涡轮膨胀机行业调研报告 - 市场现状分析与发展前景预测
  8. 戴尔PowerEdge 4路服务器全面升级 实现企业应用与核心业务工作负载的优异性能...
  9. java linux root权限管理_Linux--开启root用户并允许管理员登录
  10. 各省农村人均受教育年限及村委会个数(2011-2019年)
  11. web前端顶岗实习总结报告_假期web前端实习报告
  12. Android 不透明度值换算
  13. 计算机标题与目录怎么修改,自动生成目录怎么弄-Word目录如何自动生成与更改删除,及添加新内容如何更新等操作...
  14. AMR-WB 比特流---单通道多帧,120ms RTP打包
  15. oracle用升序索引去降序查询,Oracle工作札记
  16. 在带头结点单链表中查找最大值,将其与最后一个元素交换(交换值)
  17. 灵活提取Excel数据工具
  18. 金融业分布式数据库选型及HTAP场景实践
  19. ProtoBuf - Arena
  20. 猴子都能懂得Git(入门篇汇总版)持续更新中~~~

热门文章

  1. vsan 一台主机磁盘组全报错_分享VSAN磁盘无法识别的故障解决方法
  2. python下载微信公众号文章_python下载微信公众号相关文章
  3. 1-csv文件,解决数字不全或者数组+e的显示的问题
  4. JS的 setTimeout 和 bind 使用 、复选框限制选定数据jq
  5. 基于京东家电商品知识图谱的自动问答系统(一) -- Neo4j构建知识图谱
  6. python产品缺陷检测_3 Kaggle钢材表面缺陷检测竞赛的探索与实践-阿里云开发者社区...
  7. 嫦娥四号生物科普载荷内长出月球第一片植物嫩芽
  8. 如何发送请求以及AJAX
  9. PHP正则表达式转义符对照
  10. ******2:***常用工具排行榜-《百晓生兵器谱》