精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● Java>>JAVA编程>>杂项>>[原创2]用Java(iText)生成PDF文档

主题:[原创2]用Java(iText)生成PDF文档
发信人: grandy(一劍飄紅)
整理人: zjxyz(2003-04-08 09:17:22), 站内信件
[原创2]用Java(iText)生成PDF文档

这两个用jsp生成PDF文档的例子其实是我在半年前做一个B/S软件的时候测试用的,由于一些原因一直没有发出来。今天整理电脑,重新发现了,也就贴出来吧。

请先下载:iText.jar

例2(表格):


<%@ page contentType="text/html;charset=gb2312"%>

<%@ page import="java.io.FileOutputStream" %> 
<%@ page import="java.io.IOException" %> 
<%@ page import="java.awt.Color" %> 

<%@ page import="com.lowagie.text.*" %> 
<%@ page import="com.lowagie.text.pdf.*" %> 

<%
String title = new String("标题:PDF表格测试");

Document doc = new Document(PageSize.A4,10,10,10,10);

try{
PdfWriter.getInstance(doc,new FileOutputStream("test2.pdf"));
doc.open();

Font fontTitle = FontFactory.getFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED, 12);
Font fontContent = FontFactory.getFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED, 10);

//add title
Chunk chunk = new Chunk(title, fontTitle);
Paragraph para1 = new Paragraph(chunk);
para1.setAlignment(1);
doc.add(para1);

String[] data = {"A20979","广州本田汽车","奥德赛","一楼展厅","12","32.13","2003-01-01"};
int NumColumns = 8;


try {
PdfPTable pt = new PdfPTable(NumColumns);
pt.getDefaultCell().setPadding(3);
int[] headWidths = {6,10,20,19,10,10,10,15}; //percentage
pt.setWidths(headWidths);
pt.setWidthPercentage(100); //percentage

pt.getDefaultCell().setBorderWidth(1);
pt.getDefaultCell().setGrayFill(0.8f);
pt.getDefaultCell().setHorizontalAlignment(Element.ALIGN_CENTER);
pt.addCell(new Phrase("NO.",fontContent));
pt.addCell(new Phrase("编码",fontContent));
pt.addCell(new Phrase("公司",fontContent));
pt.addCell(new Phrase("名称",fontContent));
pt.addCell(new Phrase("位置",fontContent));
pt.addCell(new Phrase("数量",fontContent));
pt.addCell(new Phrase("单价",fontContent));
pt.addCell(new Phrase("日期",fontContent));

pt.setHeaderRows(1);

pt.getDefaultCell().setBorderWidth(1);


int max = 41;

for (int i=0;i < max; i++){

if (i%2==0){pt.getDefaultCell().setGrayFill(0.0f);}
pt.addCell(String.valueOf(i));
for (int x=0;x< NumColumns-1; x++){
pt.addCell(new Phrase(data[x],fontContent));
}
if (i%2==0){pt.getDefaultCell().setGrayFill(0.95f);}
}

doc.add(pt);

}
catch (Exception e2){
out.print(e2.getMessage());
}

doc.close();
}
catch(Exception e1){
out.print(e1.getMessage());
}
%>



本例结果:http://www.croview.com/print/iText/examples/test2.pdf


其他例子参看:http://www.croview.com/print/iText/examples/iText_examples.htm


----
男人一个!         

[关闭][返回]