2012-03-14 3 views
3

HTML 페이지에서 단어 문서를 만들고 싶습니다. HTML 페이지에서 값을 가져온 다음이 값을 문서 템플릿에 전달할 계획입니다. JSOUP을 사용하여 HTML 페이지의 내용을 구문 분석하고 Java 프로그램에서 값을 가져옵니다. 이제는 이러한 값을 워드 문서 템플릿에 전달하려고합니다. 문서 템플릿을 만들고 템플릿에 값을 전달하여 Word 문서를 만드는 데 사용할 수있는 최상의 기술을 알고 싶습니다.자바 객체의 값을 사용하여 템플릿에서 동적으로 단어 문서 만들기

감사합니다.

답변

4

에 대한

XSLT 예제 나는 매우 재미 있고 간단한 무언가를 발견했다. 우리는 만들려는 문서에 대해 간단한 .xml 템플릿을 만든 다음 프로그래밍 방식으로 XML 파일의 내용을 변경하고 ms 워드 문서로 저장하면됩니다.

xml 템플릿과 코드 here을 찾을 수 있습니다.

+0

그건 DOCX 형식 일뿐입니다. 최신 버전의 Word를 사용하고 있으면 좋습니다. –

+0

.doc 파일을 만들 수있었습니다. 먼저 동적 값을 포함하는 temperory xml을 만들었습니다. 그런 다음 HTTPServletResponse의 response.setContentType() 및 response.setHeader() 함수를 사용하여이 임시 xml을 .doc로 변환했습니다. 일단 문서가 생성되면 다운로드하기를 원했습니다. –

2

데이터가 이미 xml 형식이고 Microsoft에서 잘 정의 된 xml 형식이 있으므로 xslt를 사용하는 것이 좋습니다.

word로 문서 템플릿을 작성하고 xml 형식으로 저장할 수 있습니다. 그런 다음 html-xml을 입력으로하여 word-xml을 xsl-template으로 변환 할 수 있습니다. xslt 변환 후 html-xml의 동적 값을 가진 유효한 word-xml이 있습니다. 엑셀

<?xml version="1.0" encoding="UTF-8" ?> 
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> 
<xsl:output method="xml" encoding="UTF-8" omit-xml-declaration="no" /> 
<xsl:template match="/"> 
    <Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet" xmlns:o="urn:schemas-microsoft-com:office:office" 
     xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet" 
     xmlns:html="http://www.w3.org/TR/REC-html40"> 
     ... 
     <xsl:for-each 
      select="/yourroot/person"> 
     ... 
     <Cell ss:StyleID="uf"> 
          <Data ss:Type="String"> 
           <xsl:value-of 
            select="@Name" /> 
          </Data> 
         </Cell> 
     .. 
     </xsl:for-each> 

... 
</xsl:template> 
</xsl:stylesheet> 
+0

감사합니다. [java2word] (http://code.google.com/p/java2word/)라는 이름의 항목을 발견했습니다. 도움이 될 것이라고 생각하십니까? 추신 : 정말 어떻게 xslt 작동하는지 모르겠다. Iv는 막 공부하기 시작했습니다. –

0

JODReportsDocmosis은 템플릿 채우기 및 문서 출력이 있기 때문에 유용한 옵션입니다. DOCX가 진짜 목표라면, XML이 발표 된 이후에 직접 문서를 작성할 수 있습니다.하지만 그것은 많은 작업입니다.

+0

Docmosis는 오픈 소스가 아닙니다. 그렇습니까? –

+0

그런 식으로 보이지 않습니다. 무료 버전이지만 소유권이 있습니다. –

+0

예. 나는 오픈 소스 솔루션을 찾고 있었다. –

관련 문제