⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 searchaction.java

📁 主题:用iText输出PDF报表 内容组织: 1. 自我介绍 2. 简要介绍报表是什么 3. 为什么要输出PDF
💻 JAVA
字号:
package com.aptech.demo.itext.web;

import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

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

import org.apache.struts.actions.LookupDispatchAction;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;

import com.lowagie.text.DocumentException;

public class SearchAction extends LookupDispatchAction {
	public ActionForward toHTML(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		SearchForm searchForm = (SearchForm) form;
		BookEntity book = new BookEntity();
		book.setBookName(searchForm.getBookName());
		book.setAuthor(searchForm.getAuthor());
		book.setPublisher(searchForm.getPublisher());
		book.setPriceLow(searchForm.getPriceLow());
		book.setPriceHigh(searchForm.getPriceHigh());
		List<Book> bookList = null;
		BookDAO dao = null;
		try {
			dao = new BookDAO();
			bookList = dao.findByExample(book);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		request.setAttribute("bookList", bookList);
		return mapping.findForward("success");
	}

	public ActionForward toPDF(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		SearchForm searchForm = (SearchForm) form;
		BookEntity book = new BookEntity();
		book.setBookName(searchForm.getBookName());
		book.setAuthor(searchForm.getAuthor());
		book.setPublisher(searchForm.getPublisher());
		book.setPriceLow(searchForm.getPriceLow());
		book.setPriceHigh(searchForm.getPriceHigh());
		List<Book> bookList = null;
		BookDAO dao = null;
		try {
			dao = new BookDAO();
			bookList = dao.findByExample(book);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		CreatePDFDocument c = new CreatePDFDocument(bookList);
		ByteArrayOutputStream baos = null;
		try {
			baos = c.createPDFDocument();
			response.setContentType("application/pdf");
			response.setContentLength(baos.size());
			response.setHeader("Content-disposition",
					"inline; filename=books.pdf");
			response.getOutputStream().write(baos.toByteArray());
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (baos != null) {
				try {
					baos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return null;
	}

	public ActionForward downloadPDF(ActionMapping mapping, ActionForm form,
			HttpServletRequest request, HttpServletResponse response) {
		SearchForm searchForm = (SearchForm) form;
		BookEntity book = new BookEntity();
		book.setBookName(searchForm.getBookName());
		book.setAuthor(searchForm.getAuthor());
		book.setPublisher(searchForm.getPublisher());
		book.setPriceLow(searchForm.getPriceLow());
		book.setPriceHigh(searchForm.getPriceHigh());
		List<Book> bookList = null;
		BookDAO dao = null;
		try {
			dao = new BookDAO();
			bookList = dao.findByExample(book);
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		} catch (SQLException e) {
			e.printStackTrace();
		}
		CreatePDFDocument c = new CreatePDFDocument(bookList);
		ByteArrayOutputStream baos = null;
		try {
			baos = c.createPDFDocument();
			response.setContentType("application/x-msdownload");
			response.setContentLength(baos.size());
			response.setHeader("Content-Disposition",
					"attachment; filename=book.pdf");
			response.getOutputStream().write(baos.toByteArray());
		} catch (DocumentException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			if (baos != null) {
				try {
					baos.close();
				} catch (IOException e) {
					e.printStackTrace();
				}
			}
		}
		return null;
	}

	protected Map<String, String> getKeyMethodMap() {
		Map<String, String> map = new HashMap<String, String>();
		map.put("toHTML", "toHTML");
		map.put("toPDF", "toPDF");
		map.put("downloadPDF", "downloadPDF");
		return map;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -