Java生成并打印二维码

本次做订餐系统中,需要用到在Java生成二维码,并在jsp页面打印并输出,其中在action中生成二维码.

关键代码如下

 1 public void reWeiMa() throws Exception{
 2         //设置页面不缓存
 3          HttpServletResponse response = ServletActionContext.getResponse();
 4          HttpServletRequest quest = ServletActionContext.getRequest();
 5         Domain domain=domainService.getIp();
 6         if(domain!=null){
 7             String IP =domain.getIp();
 8             response.setHeader("Pragma","No-cache");
 9             response.setHeader("Cache-Control","no-cache");
10             response.setDateHeader("Expires", 0);
11
12             BufferedImage image=null;
13             ServletOutputStream stream = null;
14             //二维码的图片格式
15             String format = "gif";
16              String path= quest.getScheme() + "://"+IP+ ":" + quest.getServerPort()+ quest.getContextPath() + "/";
17              String content=path+"OrderDetail_getMenuMaterial?menuId="+menuId;
18                 int width2 = 200;
19                 int height2 = 200;
20
21                 Hashtable hints = new Hashtable();
22                 //内容所使用编码
23                 hints.put(EncodeHintType.CHARACTER_SET, "utf-8");
24
25                 try{
26                     BitMatrix bitMatrix = new MultiFormatWriter().encode(content,BarcodeFormat.QR_CODE, width2, height2, hints);
27                     int width = bitMatrix.getWidth();
28                     int height = bitMatrix.getHeight();
29                     image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
30                     for (int x = 0; x < width; x++) {
31                         for (int y = 0; y < height; y++) {
32                             image.setRGB(x, y, bitMatrix.get(x, y) ? 0xFF000000 : 0xFFFFFFFF); //二维码图片为黑白两色
33                         }
34                     }
35                     //ImageIO.write(image,"gif",response.getOutputStream());
36                 }catch (Exception e) {
37                     // TODO: handle exception
38                 }
39             //只有用这种解码方式才不出现乱码
40             String s="attachment;filename="+new String("No"+menuId+".gif");
41             response.addHeader("Content-Disposition",s);
42             OutputStream os=new BufferedOutputStream(response.getOutputStream());
43             response.setContentType("image/gif");
44             ImageIO.write(image,format,os);
45             os.flush();
46             os.close();
47         }else{
48             String messige="未添加域名,暂无法打印二维码";
49             request.put("messige", messige);
50             }
51     }

jsp页面代调用生成二维码方法后,返回到打印二维码jsp中,代码如下

 1 <%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 2     pageEncoding="ISO-8859-1"%>
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
 4 <html>
 5 <head>
 6 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
 7 <title>Insert title here</title>
 8 </head>
 9 <body>
10 <div style="text-align:center;">
11 <img  src="${rootPath}/OrderDetail_reWeiMa?menuId=${menuId}">
12 </div>
13
14 <script type="text/javascript">
15     window.onload = function(){
16         window.print()
17         window.close()//打印后返回到原界面
18     }
19
20 </script>
21 </body>
22 </html>

在这里的思路是在action生成的的二维码放入src标签中,直接打印整个jsp,在这个过程中,遇到了一个问题,原本调用Java内部print方法来打印二维码,但在这个过程中遇到系统无法找到指定路径,(二维码生成在服务器上,浏览器调用服务器内容),最后使用简便方法,直接打印整个jsp页面.

时间: 2024-12-21 09:06:00

Java生成并打印二维码的相关文章

java生成和解析二维码

前言 现在,二维码的应用已经非常广泛,在线生成器也是诸多,随手生成. 所以就和大家分享一个小案例,用zxing来做一个的二维码生成器,当然这个例子是比较简单,若是写的不好请多多包涵. ZXING项目是谷歌推出的用来识别多种格式条形码的开源项目,项目地址为https://github.com/zxing/zxing. 1.加载zxing依赖 用idea新建个maven项目,pom.xml添加对应的依赖 <dependency> <groupId>com.google.zxing<

Java生成名片式的二维码源码分享

世界上25%的人都有拖延症——但我觉得这统计肯定少了,至少我就是一名拖延症患者.一直想把“Java生成名片式(带有背景图片.用户网络头像.用户昵称)的二维码”这篇博客分享出来,但一直拖啊拖,拖到现在,真应了苏格兰的那句谚语——“什么时候都能做的事,往往什么时候都不会去做.” 零.效果图 左上角为微信头像. 沉默王二是文字昵称. 附带URL为http://blog.csdn.net/qing_gee的二维码 还有指定的背景图. 使用场景: 点公众号的微信菜单“我的二维码”,然后展示一张名片式的二维

Java使用QRCode.jar生成与解析二维码

正题:Java使用QRCode.jar生成与解析二维码demo 欢迎新手共勉,大神监督指正 # 不知道QRCode的请移步wiki,自行了解,这里不多做解释 *******创建二维码之前的工作******** 去下面给出的地址下载QRCode.jar包,此jar包已经包括 生成与解析 . 官网下载到的jar包是没有解析的 https://files.cnblogs.com/files/bigroc/QRCode.zip ***创建好你的测试类导好jar包开始吧*** 第一部分:生成二维码 pac

java微信小程序参数二维码生成带背景图加字体(无限生成)

需求 :  1,因为项目需求 ,生成数以万计的二维码    2 ,每个二维码带不同的参数  3,二维码有固定背景图 4 , 往生成图片上写入 字体和编号(动态 ) 设计技术 :    1,微信接口token ,nginx 缓存  2,二维码 图片定义 写字 maven <dependency> <groupId>com.twelvemonkeys.imageio</groupId> <artifactId>imageio-jpeg</artifactI

java利用zxing生成仿新浪微博二维码

原文:java利用zxing生成仿新浪微博二维码 源代码下载地址:http://www.zuidaima.com/share/1550463729896448.htm 效果图: 说明在readme.txt文件

生成条形码和二维码并实现打印的功能

生成条形码和二维码并实现打印的功能     开篇:平台下编解条形码和二维码的工具. 下载地址:http://pan.baidu.com/s/1kTr3Vuf Step1:使用VS2010新建一个窗体程序项目: Step2:添加三个类:分别是BarCodeClass.cs.DocementBase.cs.imageDocument.cs.(下一步贴出这些类的代码);;;;添加下载回来的引用zxing.dll. >说明: <1>   BarCodeClass.cs主要用来实现条形码和二维码的

C#---生成条形码,二维码,分界线并打印

分享一个可以生成条形码,二维码的dll,不多说,直接上代码: Printer: 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 using System.Drawing; 7 using ThoughtWorks.QRCode.Codec; 8 9 namespace PrintFun 10

Java微信公众平台开发之生成带参二维码(Spring Boot 2.X)

微信官方提供的生成二维码接口得到的是当前公众号的二维码官方文档(一定要先看)目前有2种类型的二维码:临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量,主要用于帐号绑定等不要求二维码永久保存的业务场景永久二维码,是无过期时间的,但数量较少(目前为最多10万个),主要用于适用于帐号绑定.用户来源统计等场景获取带参数的二维码有两种方法先获取二维码ticket,然后凭借ticket通过接口换取二维码图片,但是得到ticket之前首先得获取微

ajax加一般处理程序或ASP.NET 后台生成带着二维码的图片

ajax加一般处理程序生成带着二维码的图片 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head