티스토리 뷰
https://code.google.com/archive/p/java-html2image/ 에 게재되어있는 html2image library 를 사용한 예제 입니다. 해당 사이트에서 html2image jar 를 다운받아 프로젝트에 추가해주시기 바랍니다.
* HttpServletRequest req, HttpServletResponse res
// p.s HTML 에서 doctype ~ html, header, body 등이 들어 가면 이미지가 정상적으로 생성되지 않더라구요. 원인 아시는 분은 코멘트 부탁드립니다.!
String dispHtml = "<b>Hello World!</b> Please goto <a title=\"Goto Google\" href=\"http://www.google.com\">Google</a>";
String tempPath = "C:\\workspace\\";
String fileName = "hello-world.png";
ByteArrayOutputStream baos = null;
ByteArrayInputStream bais = null;
FileInputStream inputStream = null;
try {
HtmlImageGenerator imageGenerator = new HtmlImageGenerator();
imageGenerator.loadHtml(dispHtml);
imageGenerator.saveAsImage(tempPath + fileName);
File imgFile = new File(tempPath + fileName);
if (imgFile.exists()) {
inputStream = new FileInputStream(imgFile);
baos = new ByteArrayOutputStream();
int len = 0;
byte[] buf = new byte[1024];
while ((len = inputStream.read(buf)) != -1) {
baos.write(buf, 0, len);
}
// 이미지 삭제를 위해 스트림 Close
inputStream.close();
res.setHeader("cache-control","no-cache");
res.setHeader("expires","0");
res.setHeader("pragma","no-cache");
res.setContentType("image/png");
String strClientBrower = req.getHeader( "User-Agent" );
if( strClientBrower.indexOf( "MSIE 5.5" ) > -1 || strClientBrower.indexOf( "MSIE 6.0" ) > -1 ) {
res.setHeader( "Content-Disposition", "filename=" + fileName);
} else {
res.setHeader( "Content-Disposition", "attachment;filename=" + fileName);
}
bais = new ByteArrayInputStream(baos.toByteArray());
IOUtils.copy(bais, res.getOutputStream());
File deleteImgFile = new File(tempPath + fileName);
if (deleteImgFile.exists()) deleteImgFile.delete();
res.flushBuffer();
}
} catch (IOException ie) {
// Exception 은 용도에 따라!
} catch (Exception e) {
// Exception 은 용도에 따라!
}
'프로그래밍' 카테고리의 다른 글
Jquery Ajax Options (0) | 2018.02.10 |
---|---|
jQuery Mobile (0) | 2017.09.19 |
쉬프트, 컨트롤 클릭 시 새탭, 새창 띄우지 않기 (Shift+Click, Ctrl+Click do not open new tabs/windows) (0) | 2017.09.02 |
간단메모!! (0) | 2017.08.08 |
자바 기초 개념 (0) | 2017.08.02 |
- Total
- Today
- Yesterday
- 푸에르토 나탈레스
- 후마리
- 성스러운 계곡
- 족발
- jQuery
- 햄버거
- 나미비아
- 아구아스 칼리엔테스
- 빅토리아폴스
- 볼리비아
- Cusco
- 남미
- 빈트후크
- 칼라마
- 성계 투어
- 우유니
- 쿠스코
- 남미 저가항공
- Oracle
- 칠레
- Cambodia
- 토레스 델 파이네
- calama
- aguas calientes
- Namibia
- 마추피추
- 킹덤 호텔
- 애드센스
- Uyuni
- 캄보디아
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |