java 生成pdf文件(转,测试…

package com.testPdf;

import java.awt.Color; 
import java.io.File; 
import java.io.FileNotFoundException; 
import java.io.FileOutputStream; 
import java.io.IOException; 
import java.text.DecimalFormat; 
import java.text.NumberFormat; 
import java.util.ArrayList; 
import java.util.Date; 
 
import com.lowagie.text.Document; 
import com.lowagie.text.DocumentException; 
import com.lowagie.text.Element; 
import com.lowagie.text.Font; 
import com.lowagie.text.PageSize; 
import com.lowagie.text.Paragraph; 
import com.lowagie.text.Phrase; 
import com.lowagie.text.pdf.BaseFont; 
import com.lowagie.text.pdf.PdfCell; 
import com.lowagie.text.pdf.PdfPCell; 
import com.lowagie.text.pdf.PdfPRow; 
import com.lowagie.text.pdf.PdfPTable; 
import com.lowagie.text.pdf.PdfWriter; 
//import com.sun.java_cup.internal.internal_error; 
 
public class CreatePdf{ 
    Document document = new Document();// 建立一个Document对象      
     
    private static Font headfont ;// 设置字体大小 
    private static Font keyfont;// 设置字体大小 
    private static Font textfont;// 设置字体大小 
     
 
     
    static{ 
        BaseFont bfChinese; 
        try { 
            //bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); 
            bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED); 
            headfont = new Font(bfChinese, 10, Font.BOLD);// 设置字体大小 
            keyfont = new Font(bfChinese, 8, Font.BOLD);// 设置字体大小 
            textfont = new Font(bfChinese, 8, Font.NORMAL);// 设置字体大小 
        } catch (Exception e) {          
            e.printStackTrace(); 
        }  
   
     
     
    public CreatePdf(File file) {          
          document.setPageSize(PageSize.A4);// 设置页面大小 
          try { 
            PdfWriter.getInstance(document,new FileOutputStream(file)); 
            document.open();  
        } catch (Exception e) { 
            e.printStackTrace(); 
        }  
         
         
   
    int maxWidth = 520; 
     
     
      public PdfPCell createCell(String value,com.lowagie.text.Font font,int align){ 
          PdfPCell cell = new PdfPCell(); 
          cell.setVerticalAlignment(Element.ALIGN_MIDDLE);          
          cell.setHorizontalAlignment(align);      
          cell.setPhrase(new Phrase(value,font)); 
        return cell; 
   
     
      public PdfPCell createCell(String value,com.lowagie.text.Font font){ 
          PdfPCell cell = new PdfPCell(); 
          cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 
          cell.setHorizontalAlignment(Element.ALIGN_CENTER);  
          cell.setPhrase(new Phrase(value,font)); 
        return cell; 
   
 
      public PdfPCell createCell(String value,com.lowagie.text.Font font,int align,int colspan){ 
          PdfPCell cell = new PdfPCell(); 
          cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 
          cell.setHorizontalAlignment(align);      
          cell.setColspan(colspan); 
          cell.setPhrase(new Phrase(value,font)); 
        return cell; 
   
    public PdfPCell createCell(String value,com.lowagie.text.Font font,int align,int colspan,boolean boderFlag){ 
          PdfPCell cell = new PdfPCell(); 
          cell.setVerticalAlignment(Element.ALIGN_MIDDLE); 
          cell.setHorizontalAlignment(align);      
          cell.setColspan(colspan); 
          cell.setPhrase(new Phrase(value,font)); 
          cell.setPadding(3.0f); 
          if(!boderFlag){ 
              cell.setBorder(0); 
              cell.setPaddingTop(15.0f); 
              cell.setPaddingBottom(8.0f); 
         
        return cell; 
   
      public PdfPTable createTable(int colNumber){ 
        PdfPTable table = new PdfPTable(colNumber); 
        try{ 
            table.setTotalWidth(maxWidth); 
            table.setLockedWidth(true); 
            table.setHorizontalAlignment(Element.ALIGN_CENTER);      
            table.getDefaultCell().setBorder(1); 
        }catch(Exception e){ 
            e.printStackTrace(); 
       
        return table; 
   
      public PdfPTable createTable(float[] widths){ 
            PdfPTable table = new PdfPTable(widths); 
            try{ 
                table.setTotalWidth(maxWidth); 
                table.setLockedWidth(true); 
                table.setHorizontalAlignment(Element.ALIGN_CENTER);      
                table.getDefaultCell().setBorder(1); 
            }catch(Exception e){ 
                e.printStackTrace(); 
           
            return table; 
       
     
      public PdfPTable createBlankTable(){ 
          PdfPTable table = new PdfPTable(1); 
          table.getDefaultCell().setBorder(0); 
          table.addCell(createCell("", keyfont));          
          table.setSpacingAfter(20.0f); 
          table.setSpacingBefore(20.0f); 
          return table; 
     
       
      public void generatePDF() throws Exception{ 
        PdfPTable table = createTable(4); 
        table.addCell(createCell("学生信息列表:", keyfont,Element.ALIGN_LEFT,4,false)); 
             
        table.addCell(createCell("姓名", keyfont, Element.ALIGN_CENTER)); 
        table.addCell(createCell("年龄", keyfont, Element.ALIGN_CENTER)); 
        table.addCell(createCell("性别", keyfont, Element.ALIGN_CENTER)); 
        table.addCell(createCell("住址", keyfont, Element.ALIGN_CENTER)); 
         
        for(int i=0;i<5;i++){ 
            table.addCell(createCell("姓名"+i, textfont)); 
            table.addCell(createCell(i+15+"", textfont)); 
            table.addCell(createCell((i%2==0)?"男":"女", textfont)); 
            table.addCell(createCell("地址"+i, textfont)); 
       
        document.add(table); 
         
        document.close(); 
     
       
      public static void main(String[] args) throws Exception { 
    System.out.println("begin");
          File file = new File("e:\\text.pdf"); 
          file.createNewFile(); 
        new CreatePdf(file).generatePDF();        
        System.out.println("end");
   
     
     

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值