先看struts2配置文件:
再看action类:
<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;
}