대량 생 성 QR 코드 를 저장 하지 않 고 zip 다운 로드 를 압축 합 니 다.
컨트롤 러 방법 (springMVC)
/**
*
*
* @param code
* @param request
* @param response
*/
@ResponseBody
@RequestMapping(value = "createCode", method = RequestMethod.GET)
public void createCode(Integer size) {
QRCodeWriter writer = new QRCodeWriter();
getResponse().setHeader("Pragma", "No-cache");
getResponse().setHeader("Cache-Control", "no-cache");
getResponse().setDateHeader("Expires", 0);
getResponse().setContentType("application/zip");
List<BufferedImage> buffImgs = new ArrayList<BufferedImage>();
BitMatrix bitMatrix = null;
try {
for (int j = 1; j < 10; j++) {
bitMatrix = writer.encode(
Property.getProperty("system.qrcodeURL"),
BarcodeFormat.QR_CODE, size, size);
BufferedImage buffImg = MatrixToImageWriter
.toBufferedImage(bitMatrix);
Graphics g = buffImg.getGraphics();
g.setColor(Color.red);
//
Font f = new Font(" ", Font.BOLD, 20);
g.setFont(f);
// 10,20 (x,y) . 。
g.drawString(" " + j, 10, 30);
g.dispose();
buffImgs.add(buffImg);
}
ZipOutputStream zos = new ZipOutputStream(getResponse()
.getOutputStream());
int i = 1;
for (BufferedImage buf : buffImgs) {
ZipEntry entry = new ZipEntry(" " + i + ".jpeg");
//
zos.putNextEntry(entry);
JPEGImageEncoder en = JPEGCodec.createJPEGEncoder(zos);
en.encode(buf);
zos.flush();
i++;
}
zos.close();
// MatrixToImageWriter.writeToStream(bitMatrix, "jpeg",
// getResponse()
// .getOutputStream());
getResponse().getOutputStream().flush();
getResponse().getOutputStream().close();
} catch (WriterException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
홈 페이지 전단 JS
여기 서 호 환 처리 가 필요 합 니 다. IE 커 널 은 iframe 을 지원 하여 다운 로드 를 요청 합 니 다.하지만 불 여우 와 구 글 은 a 태그 h5 의 download 속성 을 사용 할 수 있다.
<pre name="code" class="javascript"> function DoSaveAsIMG() {
if (document.all.IframeReportImg.src != "about:blank")
window.frames['IframeReportImg'].document.execCommand("SaveAs");
}
var _size=$("#qrcode").val(); var b_name = navigator.appName; if (b_name == "Microsoft Internet Explorer") { // IFRAME , if (!document.getElementById("IframeReportImg")) $('<iframe style="display:none;" id="IframeReportImg" name="IframeReportImg" onload="DoSaveAsIMG();" width="0" height="0" src="about:blank"></iframe>').appendTo("body"); if (document.all.IframeReportImg.src != opts.createQRCodeURL+"?size="+_size) { // document.all.IframeReportImg.src = opts.createQRCodeURL+"?size="+_size; } else { // DoSaveAsIMG(); } }else{ var newA = document.createElement("a"); newA.download = "code"; newA.href = opts.createQRCodeURL+"?size="+_size; document.body.appendChild(newA); newA.click(); document.body.removeChild(newA); }
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.