SpringMVC 专题
您的位置:java > SpringMVC专题 > Spring MVC生成PDF文件
Spring MVC生成PDF文件
作者:--    发布时间:2019-11-19

以下示例演示如何使用spring web mvc框架生成pdf格式的文件。首先使用eclipse ide,并按照以下步骤使用spring web framework开发基于动态表单的web应用程序:

  1. 创建一个名称为 generatepdf 的动态web项目。
  2. com.h3.springmvc 包下创建三个java类:userpdfviewpdfcontroller
  3. maven存储库页面下载apache itext库:apache itext。 把它放在classpath中。
  4. 最后一步是创建所有源和配置文件的内容并运行应用程序,详细如下所述。

完整的项目文件目录结构如下所示 -

pdfcontroller.java 的代码如下所示 -

package com.h3.springmvc;
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("100", "xiao.lu");
      userdata.put("102", "user 102");
      userdata.put("301", "user 301");
      userdata.put("400", "user 400");
      return new modelandview("usersummary","userdata",userdata);
   }
}

userpdfview.java 的代码如下所示 -

package com.h3.springmvc;
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("no.");
      table.addcell("user name");

      for (map.entry<string, string> entry : userdata.entryset()) {
         table.addcell(entry.getkey());
         table.addcell(entry.getvalue());
      }
      document.add(table);
   }
}

generatepdf-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.h3.springmvc.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.h3.springmvc.userpdfview"></bean>
</beans>

在上面的代码中,创建了一个pdfcontrolleruserpdfview类。itext库是用来处理pdf文件格式,并将数据转换为pdf文档。

完成创建源和配置文件后,发布应用程序到tomcat服务器。

现在启动tomcat服务器,当访问url => http://localhost:8080/generatepdf/pdf , 如果spring web应用程序没有问题,应该看到以下结果:


网站声明:
本站部分内容来自网络,如您发现本站内容
侵害到您的利益,请联系本站管理员处理。
联系站长
373515719@qq.com
关于本站:
编程参考手册