Struts+iText生成Pdf报表
2013-09-04 14:11
351 查看
1.iText简介
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,
图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够
使你正确的控制Servlet的输出。
2.struts+iText开发实例
下面举例介绍一下用struts+itext开发生成pdf:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
@Controller
@Scope("prototype")
@ParentPackage("struts-base")
@Namespace("/cstOrder")
public class OrderAction extends BaseAction {
private Pager<CstOrder> pager;
public Pager<CstOrder> getPager() {
return pager;
}
public void setPager(Pager<CstOrder> pager) {
this.pager = pager;
}
@Action(value="doCreatePdf",results={@Result(name="success",type="json",
params={"root","resultMap"})})
public String doCreatePdf(){
try {
if(pager==null){
pager = new Pager<CstOrder>();
}
pager = orderService.getCstOrdersByPager(pager.getCurrentPage(), pager.getPageSize(), order);
Document doc = null;
BaseFont bfChinese=null;
doc = new Document(PageSize.A4, 50, 50, 50, 50); //设置页面大小
bfChinese=BaseFont.createFont("C:/Windows/Fonts/simhei.ttf", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);//从系统盘中选择字体,
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL ); //设置字体大小
File file = new File("E:/text.pdf");
if(file.exists()){
file.delete();
}
PdfWriter.getInstance(doc, new FileOutputStream("E:/text.pdf")); //设置生成pdf的路径
doc.open();
// PDF文件内容
PdfPTable table = new PdfPTable(3);//设置为表格
table.setWidthPercentage(80f);
PdfPCell h1 = new PdfPCell(new Paragraph("编号", FontChinese));//每个单元格的标题
PdfPCell h2 = new PdfPCell(new Paragraph("客户名称", FontChinese));
PdfPCell h3 = new PdfPCell(new Paragraph("订单金额", FontChinese));
table.setHeaderRows(1);
table.addCell(h1);
table.addCell(h2);
table.addCell(h3);
PdfPCell cell;
List<CstOrder> orderList = pager.getPageRecords();
for(int i=0;i<orderList.size();i++){
CstOrder order = orderList.get(i);
cell = new PdfPCell(new Paragraph(String.valueOf(order.getOrdId()),FontChinese));//设置单元格内容
table.addCell(cell);
cell = new PdfPCell(new Paragraph(order.getCstCustomer().getCustName(),FontChinese));
table.addCell(cell);
cell = new PdfPCell(new Paragraph(order.getOrdCapital(),FontChinese));
table.addCell(cell);
}
doc.add(table);
doc.close();
resultMap.put("retCode", RetCode.SUCCESS);
resultMap.put("msg", "生成Pdf成功,存放的路径E:/text.pdf");
} catch (Exception e) {
e.printStackTrace();
log.info("doCreateExcel bug:{}",e);
resultMap.put("retCode", RetCode.FAIL);
resultMap.put("msg","生成Pdf失败,请重试!");
}
return SUCCESS;
}
}
itext-5.4.0开发包(http://dl.vmall.com/c0cbxe08tn)
iText是一个能够快速产生PDF文件的java类库。iText的java类对于那些要产生包含文本,表格,
图形的只读文档是很有用的。它的类库尤其与java Servlet有很好的给合。使用iText与PDF能够
使你正确的控制Servlet的输出。
2.struts+iText开发实例
下面举例介绍一下用struts+itext开发生成pdf:
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.Namespace;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
import com.itextpdf.text.Document;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;
@Controller
@Scope("prototype")
@ParentPackage("struts-base")
@Namespace("/cstOrder")
public class OrderAction extends BaseAction {
private Pager<CstOrder> pager;
public Pager<CstOrder> getPager() {
return pager;
}
public void setPager(Pager<CstOrder> pager) {
this.pager = pager;
}
@Action(value="doCreatePdf",results={@Result(name="success",type="json",
params={"root","resultMap"})})
public String doCreatePdf(){
try {
if(pager==null){
pager = new Pager<CstOrder>();
}
pager = orderService.getCstOrdersByPager(pager.getCurrentPage(), pager.getPageSize(), order);
Document doc = null;
BaseFont bfChinese=null;
doc = new Document(PageSize.A4, 50, 50, 50, 50); //设置页面大小
bfChinese=BaseFont.createFont("C:/Windows/Fonts/simhei.ttf", BaseFont.IDENTITY_H,BaseFont.NOT_EMBEDDED);//从系统盘中选择字体,
Font FontChinese = new Font(bfChinese, 12, Font.NORMAL ); //设置字体大小
File file = new File("E:/text.pdf");
if(file.exists()){
file.delete();
}
PdfWriter.getInstance(doc, new FileOutputStream("E:/text.pdf")); //设置生成pdf的路径
doc.open();
// PDF文件内容
PdfPTable table = new PdfPTable(3);//设置为表格
table.setWidthPercentage(80f);
PdfPCell h1 = new PdfPCell(new Paragraph("编号", FontChinese));//每个单元格的标题
PdfPCell h2 = new PdfPCell(new Paragraph("客户名称", FontChinese));
PdfPCell h3 = new PdfPCell(new Paragraph("订单金额", FontChinese));
table.setHeaderRows(1);
table.addCell(h1);
table.addCell(h2);
table.addCell(h3);
PdfPCell cell;
List<CstOrder> orderList = pager.getPageRecords();
for(int i=0;i<orderList.size();i++){
CstOrder order = orderList.get(i);
cell = new PdfPCell(new Paragraph(String.valueOf(order.getOrdId()),FontChinese));//设置单元格内容
table.addCell(cell);
cell = new PdfPCell(new Paragraph(order.getCstCustomer().getCustName(),FontChinese));
table.addCell(cell);
cell = new PdfPCell(new Paragraph(order.getOrdCapital(),FontChinese));
table.addCell(cell);
}
doc.add(table);
doc.close();
resultMap.put("retCode", RetCode.SUCCESS);
resultMap.put("msg", "生成Pdf成功,存放的路径E:/text.pdf");
} catch (Exception e) {
e.printStackTrace();
log.info("doCreateExcel bug:{}",e);
resultMap.put("retCode", RetCode.FAIL);
resultMap.put("msg","生成Pdf失败,请重试!");
}
return SUCCESS;
}
}
itext-5.4.0开发包(http://dl.vmall.com/c0cbxe08tn)
相关文章推荐
- Struts+iText生成Pdf报表
- Struts+iText生成Pdf报表
- Struts+iText生成Pdf报表
- 利用iText生成PDF报表
- 如何利用iText在JSP中生成PDF报表
- 详解如何利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- Java使用itext生成PDF报表
- (例)Java生成PDF报表 iText
- 使用ITEXT与JAVA生成PDF报表
- 详解如何利用iText在JSP中生成PDF报表
- 利用iText在JSP中生成PDF报表
- PDF格式报表生成IText
- jfreechart,pdf生成组件iText,jasper report报表组件及POI操作excel等在企业软件开发中常遇到的第三方应用
- 利用iText生成pdf报表
- 利用iText在JSP中生成PDF报表
- 如何利用iText在JSP中生成PDF报表
- 用itext生成pdf报表上篇