spring mvc 스프링 바코드 생성 하기 Zxing 사용법
안녕하세요. spring 프로젝트중 바코드를 생성해서 회원에게 날려줘야 할일이 생겼어요.
그래서 지금 바코드 생성 관련해서 찾아보니 zxing를 사용한 방법이 공개되어 있었어요.
일단 메이븐에서 라이브러리 다운로드를 위해 설정을 합니다.
<!-- https://mvnrepository.com/artifact/com.google.zxing/core -->
<!-- 구글바코드 오픈소스 -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>core</artifactId>
<version>3.4.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.google.zxing/javase -->
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.4.0</version>
</dependency>
그리고나서 컨트롤러 위치한 곳에 바코드 이미지를 받아가는 코딩을 합니다.
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.MultiFormatWriter;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
라이브러리를 import를 하고요.
@RequestMapping(value = "/get_barcode", method = RequestMethod.GET)
public ResponseEntity<byte[]> get_partner_image(HttpServletRequest request, Model model) throws Exception {
smsp.print_String("get_barcode ==>" + "아악." );
String text ="https://digital365365.com";
String _formatName = text;
text = new String(text.getBytes("UTF-8"), "ISO-8859-1");
byte[] imageInByte_re = smsp.getBarCodeImage(text, 840, 160);
//smsp.print_String(image.toString());
HttpHeaders headers = new HttpHeaders();
String mt_filename = text+".png";
String formatName = "png";
MediaType mType = MediaUtils.getMediaType(formatName);
//smsp.print_String(mType.toString());
if(mType != null){
headers.setContentType(mType);
}else{
mt_filename = new String(mt_filename.getBytes("UTF-8"), "ISO-8859-1");
headers.setContentType(MediaType.APPLICATION_OCTET_STREAM);
headers.add("Content-Disposition", "attachment;filename=\""+mt_filename+"\";");
headers.add("Content-Transfer-Encoding", "binary");
}
return new ResponseEntity<byte[]>(imageInByte_re, headers,HttpStatus.OK);
}
바코드 생성코드는 이렇게 있습니다.
public static byte[] getBarCodeImage(String text, int width, int height) {
try {
Hashtable<EncodeHintType, ErrorCorrectionLevel> hintMap = new Hashtable<>();
hintMap.put(EncodeHintType.ERROR_CORRECTION, ErrorCorrectionLevel.L);
Writer writer = new Code128Writer();
BitMatrix bitMatrix = writer.encode(text, BarcodeFormat.CODE_128, width, height);
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
MatrixToImageWriter.writeToStream(bitMatrix, "png", byteArrayOutputStream);
return byteArrayOutputStream.toByteArray();
} catch (Exception e) {
return null;
}
}
이상 정리해보았습니다.
<img src="${pageContext.request.contextPath}/cp_a/get_barcode" alt="바코드">
'SPRING FRAMEWORK' 카테고리의 다른 글
spring mvc homepage 스프링 홈페이지 만들기 1 (0) | 2020.05.15 |
---|---|
summernote img 태그 이미지 첨부 스프링 (0) | 2020.04.21 |
SPRING MVC 세팅 설정 시작하기! (0) | 2020.04.06 |
Spring java excel download 스프링 엑셀 다운 poi (0) | 2020.03.18 |
dropzone 사용법 SPRING MVC 다중파일 멀티파일 (0) | 2020.03.12 |