• Java生成pdf文件


    应用场景:https://www.cnblogs.com/excellencesy/p/9779057.html    (2)

    1,pdf文本表格源码

    package com.songyan.pdf;
    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; 
       
    public class PDFReport{ 
        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 PDFReport(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 { 
             File file = new File("D:\text.pdf"); 
             file.createNewFile(); 
            new PDFReport(file).generatePDF();       
        } 
           
           
    }

    2,console && 生成的文件

  • 相关阅读:
    苦尽甘来之国产数据库风云榜2022年03月
    存储demo
    行云日志捕获
    重跑支持,删除历史数据
    SpingMVC:结果跳转方式与数据处理
    从Go编程看IO多路复用Select
    mac brew 安装
    对手价是什么意思
    WPF 自定义 窗体(抄袭Fluent.Ribbon仿VS窗体)
    领域驱动设计(2) 领域事件、DDD分层架构
  • 原文地址:https://www.cnblogs.com/excellencesy/p/9779068.html
Copyright © 2020-2023  润新知