1. 程式人生 > >Spring MVC-集成(Integration)-生成PDF示例(轉載實踐)

Spring MVC-集成(Integration)-生成PDF示例(轉載實踐)

classpath www contex .org del body color cnblogs font

以下內容翻譯自:https://www.tutorialspoint.com/springmvc/springmvc_pdf.htm

說明:示例基於Spring MVC 4.1.6

以下示例顯示如何使用Spring Web MVC框架生成PDF。首先,讓我們使用Eclipse IDE,並按照以下步驟使用Spring Web Framework開發基於動態窗體的Web應用程序:

描述
1 創建一個名為TestWeb的項目,在一個包com.tutorialspoint下,如Spring MVC - Hello World Example章節所述。
2 在com.tutorialspoint包下創建Java類UserPDFView,PDFController。
3 從maven存儲庫頁面下載iText庫iText。把它放在你的CLASSPATH中。
4 最後一步是創建所有源和配置文件的內容並導出應用程序,如下所述。

PDFController.java

package com.tutorialspoint;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.ModelAndView; import org.springframework.web.servlet.mvc.AbstractController; public class PDFController extends AbstractController { @Override protected ModelAndView handleRequestInternal(HttpServletRequest request, HttpServletResponse response) throws
Exception { //user data Map<String,String> userData = new HashMap<String,String>(); userData.put("1", "Mahesh"); userData.put("2", "Suresh"); userData.put("3", "Ramesh"); userData.put("4", "Naresh"); return new ModelAndView("UserSummary","userData",userData); } }

UserExcelView.java

package com.tutorialspoint;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.view.document.AbstractPdfView;

import com.lowagie.text.Document;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.PdfWriter;

public class UserPDFView extends AbstractPdfView {

   protected void buildPdfDocument(Map<String, Object> model, Document document, PdfWriter pdfWriter, HttpServletRequest request, HttpServletResponse response)
      throws Exception {
      Map<String,String> userData = (Map<String,String>) model.get("userData");

      Table table = new Table(2);
      table.addCell("Roll No");
      table.addCell("Name");

      for (Map.Entry<String, String> entry : userData.entrySet()) {
         table.addCell(entry.getKey());
         table.addCell(entry.getValue());
      }
      document.add(table);
   }
}

TestWeb-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"   
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
   http://www.springframework.org/schema/mvc
   http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
   <bean
      class="org.springframework.web.servlet.mvc.support.ControllerClassNameHandlerMapping" />

   <bean class="com.tutorialspoint.PDFController" />

   <bean class="org.springframework.web.servlet.view.XmlViewResolver">
      <property name="location">
         <value>/WEB-INF/views.xml</value>
      </property>
   </bean>
</beans>

views.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd">

   <bean id="UserSummary" class="com.tutorialspoint.UserPDFView"></bean>
</beans>

這裏我們創建了一個PDFController和UserPDFView。iText庫處理PDF文件格式,並將數據轉換為PDF文檔。

完成創建源文件和配置文件後,導出應用程序。右鍵單擊應用程序並使用Export > WAR File選項,並將您的TestWeb.war文件保存在Tomcat的webapps文件夾中。

現在啟動您的Tomcat服務器,並確保您可以使用標準瀏覽器從webapps文件夾訪問其他網頁。現在嘗試URL http://localhost:8080/TestWeb/pdf,您應該看到以下結果。

技術分享

Maven示例:

https://github.com/easonjim/5_java_example/tree/master/springmvc/tutorialspoint/test31

Spring MVC-集成(Integration)-生成PDF示例(轉載實踐)