Рубрики
Без рубрики

Весенний MVC и PDF-файл через AbstractPdfView

– Весенний MVC и PDF-файл через AbstractPdfView

Автор оригинала: mkyong.

Spring MVC поставляется с классом AbstractPdfView для экспорта данных в PDF-файл с помощью библиотеки Bruno Lowagie iText . В этом уроке показано использование AbstractPdfView класса в приложении Spring MVC для экспорта данных в PDF-файл для загрузки.

1. Это текст

Получите библиотеку iText для создания файла pdf.

     
    
	com.lowagie
	itext
	2.1.7
    

2. Контроллер

Класс контроллера, создайте фиктивные данные для демонстрации и получите параметр запроса, чтобы определить, какое представление возвращать. Если параметр запроса равен ” PDF “, то верните представление Pdf ( AbstractPdfView ).

Файл: RevenueReportController.java

package com.mkyong.common.controller;

import java.util.HashMap;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.bind.ServletRequestUtils;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.AbstractController;

public class RevenueReportController extends AbstractController{

	@Override
	protected ModelAndView handleRequestInternal(HttpServletRequest request,
		HttpServletResponse response) throws Exception {
		
		String output =
			ServletRequestUtils.getStringParameter(request, "output");
		
		//dummy data
		Map revenueData = new HashMap();
		revenueData.put("1/20/2010", "$100,000");
		revenueData.put("1/21/2010", "$200,000");
		revenueData.put("1/22/2010", "$300,000");
		revenueData.put("1/23/2010", "$400,000");
		revenueData.put("1/24/2010", "$500,000");
		
		if(output ==null || "".equals(output)){
		    //return normal view
		    return new ModelAndView("RevenueSummary","revenueData",revenueData);
			
		}else if("PDF".equals(output.toUpperCase())){
		    //return excel view
		    return new ModelAndView("PdfRevenueSummary","revenueData",revenueData);
			
		}else{
		    //return normal view
		    return new ModelAndView("RevenueSummary","revenueData",revenueData);
			
		}	
	}	
}

3. Просмотр Отчета О Доходах В Формате Pdf

Создайте представление pdf, расширяя класс abstractpdfview , переопределите метод buildExcelDocument() для заполнения данных в файл pdf. AbstractPdfView использует API iText для создания файла pdf.

Файл: PdfRevenueReportView.java

package com.mkyong.common.view;

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 PdfRevenueReportView extends AbstractPdfView{

	@Override
	protected void buildPdfDocument(Map model, Document document,
		PdfWriter writer, HttpServletRequest request,
		HttpServletResponse response) throws Exception {

		Map revenueData = (Map) model.get("revenueData");
		
		Table table = new Table(2);
		table.addCell("Month");
		table.addCell("Revenue");
		
		for (Map.Entry entry : revenueData.entrySet()) {
			table.addCell(entry.getKey());
			table.addCell(entry.getValue());
                }

		document.add(table);
	}
}

4. Конфигурация пружины

Создайте XmlViewResolver для представления Pdf.



 
    
    
    
    
       
          /WEB-INF/spring-pdf-views.xml
       
    
   

Файл: spring-pdf-views.xml


 
   
   
 

5. Демонстрация

URL: http://localhost:8080/SpringMVC/revenuereport.htm?output = pdf

Он генерирует PDF-файл для загрузки пользователем.

Скачать Исходный Код

Рекомендации

  1. Веб-сайт iText
  2. iText Вики
  3. АбстрактPdfView Javadoc

Оригинал: “https://mkyong.com/spring-mvc/spring-mvc-export-data-to-pdf-file-via-abstractpdfview/”