在webwork 里面VIEW层的表现可以有很多种如volecity,jsp,pdf,excel等形式的视图,还有一些第三方插件也提供了这样的功能,比如:displayTag也可以导出pdf,excel的视图格式。其实最底层的实现如PDF使用了IText,Excel使用了POI等开源项目,只不过webwork或displayTag这样的工具有对它们封装了一下。
现在把使用IText导出PDF格式的文件和大家分享一下。
- package com.alisoft.demo;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import com.lowagie.text.Document;
- import com.lowagie.text.DocumentException;
- import com.lowagie.text.Paragraph;
- import com.lowagie.text.pdf.BaseFont;
- import com.lowagie.text.pdf.PdfWriter;
- /**
- * 项目名称: admin 后台管理系统
- * 功能模块名称:IRM
- * 文件名称为:PDFDemo.java
- * 文件创建人:hongliang.dinghl
- * 修改记录:
- * 修改人 修改日期 备注
- *
- * @author 丁宏亮
- * @version
- * @time 2008-11-11 下午02:27:34
- * @copyright www.alisoft.com
- */
- public class PDFDemo {
- //指定文件全路径
- @SuppressWarnings("finally")
- public boolean writerPDF(String fileName){
- // 创建一个文档对象
- Document doc = new Document();
- try {
- //定义输出文件的位置
- PdfWriter.getInstance(doc, new FileOutputStream(fileName));
- //开启文档
- doc.open();
- //设定字体 为的是支持中文
- BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
- com.lowagie.text.Font FontChinese = new com.lowagie.text.Font(bfChinese, 12, com.lowagie.text.Font.NORMAL);
- //向文档中加入文字
- doc.add(new Paragraph("Hello你好!世界world",FontChinese));
- //关闭文档并释放资源
- doc.close();
- return true;
- } catch (FileNotFoundException e) {
- e.printStackTrace();
- return false;
- } catch (DocumentException e) {
- e.printStackTrace();
- return false;
- } catch (IOException e) {
- e.printStackTrace();
- return false;
- } finally{
- return false;
- }
- }
- //指定文件路径和文件名称
- public boolean writerPDF(String filePath,String fileName){
- return false;
- }
- //指定文件输入流
- public boolean writerPDF(InputStream inputStream){
- return false;
- }
- public static void main(String args[]){
- PDFDemo pdf=new PDFDemo();
- pdf.writerPDF("f:/alisoft.pdf");
- }
- }
这个功能大家还可以扩展,比如导出完以后可以下载到本地系统或发送一个Email带附件的邮件都是可以的。