2014-04-09 4 views
2

내 STRUTS MVC JAVA 프로젝트에서 HTML 파일 형식을 사용합니다. HTML은 JSP 파일에 포함됩니다. 내가 원하는 것은 SUBMIT 근처에 "Download as PDF"버튼을 제공하는 것입니다. 이 다운로드 버튼을 클릭하면 양식에 입력 한 모든 값을 사용하여 로컬 컴퓨터에 다운로드해야합니다.PDF의 페이지에서 기존 양식 변환

이러한 유형의 문제에 대해서는별로 생각하지 않으셔서 도와주세요.

감사합니다,

+0

봐에서 : http://xmlgraphics.apache.org/fop/ – DmitryKanunnikoff

답변

0

당신은 작동 iText에서 PDF를 생성하고 클라이언트로 보낼 수 있습니다. Apache FOP

사용의 거점으로이 코드에서

0

찾는 위치 :

private void printStatement(Statement s, HttpServletResponse resp) throws IOException { 
     StringBuffer sb = new StringBuffer(); 

     sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" + 
       "\n" + 
       "<fo:root xmlns:fo=\"http://www.w3.org/1999/XSL/Format\">\n" + 
       "\n" + 
       " <fo:layout-master-set>\n" + 
       "  <fo:simple-page-master master-name=\"spm\"\n" + 
       "        page-height=\"29.7cm\"\n" + 
       "        page-width=\"21cm\"\n" + 
       "        margin-top=\"1cm\"\n" + 
       "        margin-bottom=\"1cm\"\n" + 
       "        margin-left=\"1cm\"\n" + 
       "        margin-right=\"1cm\">\n" + 
       "   <fo:region-body/>\n" + 
       "  </fo:simple-page-master>\n" + 
       " </fo:layout-master-set>\n" + 
       "\n" + 
       " <fo:page-sequence master-reference=\"spm\">\n" + 
       "  <fo:flow flow-name=\"xsl-region-body\">\n" + 
       "\n" + 
       "   <fo:block font-weight=\"bold\" font-size=\"16pt\" font-family=\"sans-serif\" line-height=\"24pt\"\n" + 
       "      space-after.optimum=\"15pt\" text-align=\"center\" padding-top=\"3pt\">\n" + 
       "    Credit card processing statement\n" + 
       "   </fo:block>\n" + 
       "\n" + 
       "   <fo:table table-layout=\"fixed\" width=\"100%\" border-collapse=\"separate\">\n" + 
       "    <fo:table-column column-width=\"35mm\"/>\n" + 
       "    <fo:table-column column-width=\"60mm\"/>\n" + 
       "    <fo:table-column column-width=\"35mm\"/>\n" + 
       "    <fo:table-column column-width=\"60mm\"/>\n" + 
       "    <fo:table-body>\n" + 
       "\n" + 
       "     <fo:table-row>\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"bold\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        From:\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"normal\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        " + s.getStartDate() + "\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "\n" + 
       "      <fo:table-cell><fo:block> </fo:block></fo:table-cell>\n" + 
       "      <fo:table-cell><fo:block> </fo:block></fo:table-cell>\n" + 
       "     </fo:table-row>\n" + 
       "\n" + 
       "\n" + 
       "     <fo:table-row>\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"bold\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        Address:\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"normal\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        <![CDATA[" + s.getSite().getMerchant().getAddress() + "]]>\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"bold\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        Currency:\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "\n" + 
       "      <fo:table-cell>\n" + 
       "       <fo:block font-weight=\"normal\" font-size=\"10pt\" font-family=\"serif\">\n" + 
       "        " + s.getCurrency().toString() + "\n" + 
       "       </fo:block>\n" + 
       "      </fo:table-cell>\n" + 
       "     </fo:table-row>\n" + 
       "\n" + 
       "    </fo:table-body>\n" + 
       "   </fo:table>\n" + 
       "  </fo:flow>\n" + 
       " </fo:page-sequence>\n" + 
       "</fo:root>"); 


     FopFactory fopFactory = FopFactory.newInstance(); 
     TransformerFactory tFactory = TransformerFactory.newInstance(); 

     try { 
      resp.setContentType("application/pdf"); 
      Fop fop = fopFactory.newFop("application/pdf", resp.getOutputStream()); 
      Transformer transformer = tFactory.newTransformer(); 
      Source src = new StreamSource(new ByteArrayInputStream(sb.toString().getBytes("ISO-8859-1"))); 
      Result res = new SAXResult(fop.getDefaultHandler()); 
      transformer.transform(src, res); 
     } catch (Exception e) { 
      logger.error("Error of PDf generating: " + e.getLocalizedMessage()); 
     } 
    } 
2

PDFmyForm 버튼을 추가,이 정확히 않습니다.

당신은 당신의 페이지에 다음 두 줄을 추가

<script type="text/javascript" src="http://www.pdfmyform.com/js/pdfmyform.js"></script> 
<a onclick="pdfmyform(this);" href="#">PDF this page!</a>