Struts2中用itext实现PDF文件导出

本文介绍如何使用Struts2框架结合iText库生成并导出包含中文内容的PDF合同。通过配置Struts2的stream类型结果,可以将生成的PDF文件作为附件下载。文章详细展示了具体的配置文件设置及Action类代码实现。
先看struts2配置文件:

<action name="generateContract" class="contractAction" method="generateContract">
<result name="success" type="stream">
<param name="contentType">application/pdf; charset=gb2312</param>
<param name="inputName">pdfStream</param>
<param name="contentDisposition">attachment; filename="contract.pdf"</param>
<param name="bufferSize">2048</param>
</result>
</action>


再看action类:

import com.lowagie.text.Document;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;
private InputStream pdfStream;

/**
* 倒出PDF合同
* @return
*/
public String generateContract() throws Exception{
Document document = new Document();

BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font FontChinese = new Font(bfChinese);

ByteArrayOutputStream buffer = new ByteArrayOutputStream();
PdfWriter.getInstance(document, buffer);
document.open();
document.add(new Paragraph("中文Hello World",FontChinese));
document.close();

this.pdfStream = new ByteArrayInputStream(buffer.toByteArray());
buffer.close();
return SUCCESS;
}

public InputStream getPdfStream() {
return pdfStream;
}
本书由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼优快云产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。   本书以Struts2的源代码为依托,通过对Struts2的源代码的全面剖析深入探讨了Struts2的架构设计、实现原理、设计理念与设计哲学,对从宏观上和微观上去了解Struts2的技术内幕提供了大量真知灼见。同样重要的是,本书还深入挖掘并分析了Struts2源代码实现中蕴含的大量值得称道的编程技巧和设计模式,这对开发者从Struts2的设计原理上去掌握和悟透Web层开发的要点和本质提供了绝佳的指导。   本书主要分为3大部分,内容安排具有极强的逻辑推理性,章和章之间互相呼应且互为印证。知识准备篇首先介绍了获取、阅读和调试Struts2源代码的方法,以及Struts2源代码的组织形式;然后厘清了Web开发中极易混淆的一些重要概念,以及Struts2的核心技术、宏观视图、微观元素、配置元素等,提纲挈领地对Struts2进行了多角度的讲解。核心技术篇首先分析了Struts2中多种具有代表性的设计模式,然后对Struts2中的精华——OGNL表达式引擎和XWork框架的原理及机制进行了全面深入的分析和讲解。运行主线篇首先对Struts2的两大运行主线——初始化主线和HTTP请求处理主线进行了深入的剖析,然后对Struts2的扩展机制进行了解读和抽象。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值