티스토리 뷰


처음에는 DB의 내용을 WORD로 바로 출력하기 위해

Apache POI나 docx4j 와 같은 라이브러리를 한참 찾고 사용법을 익히려고 애를 썻으나

엑셀이 아닌 워드에서는 표(컬럼)을 나누고 병합하고 하는 등의 작업이 매우 까다롭고 어려워서, 어떻게 처리해야 좋을지 몰랐습니다..( 유료는..못쓰고... 실력은 미비한지라...흠흠.. )

사람인과 같은 포털사이트에서는 자신의 이력서를 출력할 때 웹페이지에서 보는 것과 비슷하게 표가 작성되어 출력이 됩니다. 그래서, 여러 방식을 검색해본 결과...

JSP 문서에서 Response객체를 이용하여 페이지를 바로 Word 파일로 저장시켜 버리는 것입니다.

먼저, CSS와 표를 만들어서 Word 문서로 저장되기에 적합하도록 페이지를 만들고!

JSP 코딩을 이용하여 다운로드 되도록~~~하면 끝!

	<%
		boolean isWord = true;
		if ("yes".equals(request.getParameter("word"))) {
			isWord = false;
		}

		if (!isWord) {
			String formName = "";
			formName = "test.doc";
			File filepath = new File(formName);
			response.setContentType("application/vnd.ms-word");
			response.setHeader("Content-Disposition", "inline; filename="
					+ filepath);
		}
	%>

저 같은 경우에는 버튼을 누르면 Word로 바로 다운로드 되도록 하는데 기존 뷰페이지와 다운로드 페이지의 모양이 상이하기 때문에 css가 거의 적용되지 않는 새로운 페이지가 존재하고~ 파일을 다운로드 시키고 페이지가 닫히도록 만들어 놨습니다.

<a href="word?word=yes">MS-WORD다운로드</a>

이런식으로 해서 만들었습니다^^

생각보다 간결한 방법으로 해결해버려서 놀랐고.. 이전에 검색하던 방법도 언젠간 써먹겟지만..많은 시간 소모해버려서 너무 힘들었어요..

한글 쪽 문서에는 이런 내용이 별로 없어서 헤맷지만, 저도 그렇고 다음 번에는 빠르게 해결할 수 있었음 좋겟습니다.


세줄 요약!

1. MS-WORD로 출력할 만한 페이지를 디자인한다(그냥 표(table) 가 제일 깔끔해요..)

2. 위 JSP 소스 코드를 이용해서 페이지를 다운로드 하도록 한다.

3. Word 파일 출력 결과물을 확인한다. 끄읏



댓글