`
based
  • 浏览: 818 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

报表制作Itext

J# 
阅读更多
/**
 * 
 */
package com.csk;

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.pdf.PdfPCell;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter;

/**
 * @author 310059
 *
 */
public class PDFtest {

    /**
     * @param args
     */
    static PdfPTable aTable = null;
    static PdfWriter writer = null;
    public static void main(String[] args) {
        // TODO 自動生成されたメソッド・スタブ
       
        try {
            
            BufferedReader br = new BufferedReader(new FileReader("D:/new.csv"));
            String str = "";
            List<String[]> header = new ArrayList<String[]>();
            List<String[]> footer = new ArrayList<String[]>();
            List<String[]> title = new ArrayList<String[]>();
            
            String[] strarray = null;
            
            String[] listsize = null;
            
            while((str=br.readLine())!=null){
                
                strarray = str.split(",");
                if(strarray[0].equals("header")){
                    header.add(strarray);
                    continue ;
                }
                if(strarray[0].equals("title")){
                    title.add(strarray);
                    continue ;
                }
                if(strarray[0].equals("title_column")){
                    listsize = strarray;
                    continue ;
                }
                if(strarray[0].equals("footer")){
                    footer.add(strarray);
                    continue ;
                }
                if(strarray.length>2){
                    title.add(strarray);
                    continue ;
                }
            }
            doshow(header, footer, title, listsize);
            br.close();
        } catch (FileNotFoundException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        } catch (IOException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
    }
    
    
    public static void doshow( List header, List footer, List title, String[] listsize){
       
        
        Document document = new Document(PageSize.A4,45, 45, 45, 50);
        try {
            writer =  PdfWriter.getInstance(document, new FileOutputStream("Chap01.pdf"));
            document.open();
            // first header 
            if(header.size()!=0){
                    String[] str = (String[]) header.get(0);
                    Paragraph p1 = new Paragraph(str[1],FontCreate.geheadertFont());
                    p1.setSpacingAfter(15f); 
                    document.add(p1);
                for (int i = 1; i < header.size(); i++) {
                   
                    String[] str1 = (String[]) header.get(i);
                    Paragraph p2 = new Paragraph(str1[1],FontCreate.geheadertFont1());
                    p2.setAlignment(Element.ALIGN_RIGHT); 
                    p2.setSpacingAfter(5f); 
                    document.add(p2);
                    
                    }
                   
             }
            
            
            
            //second title  
            int width[] = {15,0,25,0,10,0,5,5}; 
            int size = 0;
            int j = 0;
            String[] sizestr = (String[]) title.get(0);
            size = sizestr.length;
            aTable = new PdfPTable(size-1);
            aTable.setWidthPercentage(100);
            aTable.setWidths(width);
            aTable.flushContent();
            aTable.setSkipFirstHeader(false);
            for(int i=0;i<title.size();i++){
               
                String[] str = (String[]) title.get(i);
                for (int k = 1; k < str.length; k++) {
                   if(i==0){
                       Paragraph paragraph =new Paragraph(str[k],FontCreate.getFisrtFont1());   
                       paragraph.setAlignment(Element.ALIGN_CENTER);
                       PdfPCell cell = new PdfPCell(paragraph);
                       cell.setBackgroundColor(BaseColor.LIGHT_GRAY);
                       cell.addElement(paragraph);   
                       cell.setPadding(5);
                       aTable.addCell(cell);
                       aTable.setHeaderRows(1);
                   }else {
                       if(str[1].equals("")&&k==1&&i!=title.size()-1){
                           Phrase phrase = new Phrase(str[k],FontCreate.geheadertFont1());
                           PdfPCell cell = new PdfPCell(phrase);
                           cell.setBorder(4);
                           aTable.addCell(cell);
                       }else if((!str[1].equals(""))){
                           Phrase phrase = new Phrase(str[k],FontCreate.geheadertFont1());
                           PdfPCell cell = new PdfPCell(phrase);
                           cell.setBorder(Element.SECTION);
                           aTable.addCell(cell);
                           
                       }else if(i==title.size()-1){
                           
                           Phrase phrase = new Phrase(str[k],FontCreate.geheadertFont1());
                           PdfPCell cell = new PdfPCell(phrase);
                           cell.setBorder(Element.RECTANGLE);
                           aTable.addCell(cell);
                           
                       }else{
                           Phrase phrase = new Phrase(str[k],FontCreate.geheadertFont1());
                           PdfPCell cell = new PdfPCell(phrase);
                           //cell.setBorder(4);
                           aTable.addCell(cell);
                           }
                     
                       }
                   }
            }  
            document.add(aTable);
            
            
            
            // third footer 
            if(header.size()!=0){
                
                for (int i = 0; i < footer.size(); i++) {
                    String[] str1 = (String[]) footer.get(i);
                    
                            if(str1.length<2){
                                Paragraph p2 = new Paragraph(" ");
                                document.add(p2);
                            }else {
                                
                                Paragraph p2 = new Paragraph(str1[1],FontCreate.geheadertFont1());
                                document.add(p2);
                            }
                    }
             }
        } catch (FileNotFoundException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        } catch (DocumentException e) {
            // TODO 自動生成された catch ブロック
            e.printStackTrace();
        }
        document.close();
    }        
}

 从CSV文件读取 然后再进行PDF制作。

分享到:
评论

相关推荐

    itext报表生成工具

    在IT行业中,尤其是在报表生成、电子发票制作以及文档自动化等领域,IText是广泛应用的工具之一。 在描述中提到的“eclipse3.2+myeclipse5.5”是两个流行的Java集成开发环境(IDE)。Eclipse是一个通用的开源IDE,...

    itext报表类库 柱形图,饼图,折线图

    在使用iText进行报表制作时,柱形图、饼图和折线图是数据可视化的三种基本类型,它们各有特点: 1. **柱形图(Bar Chart)**: - 柱形图用于比较不同类别之间的数值,通过长条的高度表示数据量的大小。在iText中,...

    itext2.06报表工具

    开发者可以使用itext API来动态创建PDF,这在报表生成、发票制作、电子书创建等领域非常有用。 **主要特性:** 1. **文本处理**:支持多种字体、字号、样式和颜色,可以设置文本对齐方式、行距、段落间距等。 2. **...

    iText2.1.7资料大全(制作PDF的java开源框)

    相关教程 iText 简介 iText创建文档简介 iText入门实例 IText使用PDF模板输出报表的实践 我和iText第一次亲密接触 相关JAR iText-2.1.7.jar(核心) iTextAsian.jar(中文支持) iText-rups-2.1.7.jar iText-rtf-...

    iText-5.0.1.jar

    jsp用pdf文件制作报表,itext最新jar包。

    itext-2.0.3.jar和iTextAsian.jar

    综上所述,"itext-2.0.3.jar"和"iTextAsian.jar"在JasperReports和iReport的报表制作中扮演了核心角色,特别是对于包含中文内容的报表。这两个库解决了中文字符的显示问题,使得开发者能够创建出具有中文支持的高...

    iTextAsian.jar iText.jar

    这两个JAR(Java Archive)文件在IT行业中扮演着重要角色,特别是在自动化文档生成和报表制作的场景下。 iText是一个开源的Java库,它允许开发人员通过编程方式创建、修改和操作PDF文档。这个库提供了一系列API,...

    iText-5.0.5与iTextAsian

    - **电子书制作**:在制作包含中文或其他亚洲语言的电子书时,iTextAsian可以确保文字的正确显示和布局。 - **合同签署**:利用iText的数字签名功能,可以实现安全的电子合同签署,同时支持中文注释和条款。 - **PDF...

    itext导出PDF所需jar包

    iText允许开发者通过编程方式生成高质量的PDF文档,包括文本、图像、表格、链接等多种元素,适用于各种业务场景,如报表生成、电子书制作等。 iText-2.1.7.jar是iText库的主要部分,包含了处理PDF文档的核心功能。...

    iText可以制作PDF文件的JAVA源程序

    这个库在IT行业中广泛应用,尤其在需要生成动态报表、发票、证书等文档时,iText能够提供灵活且高效的解决方案。在Java源程序中使用iText,开发者可以轻松地添加文本、图像、表格、超链接以及各种复杂的布局到PDF...

    java 报表制作

    在Java开发中,报表制作是一项重要的任务,它涉及到数据的收集、处理和展示,以便于数据分析和决策制定。本资源包汇聚了关于Java报表制作的相关文档,为开发者提供了一个便捷的资料库,节省了寻找和学习的时间。下面...

    利用itext操作pdf从数据库导出大量数据--汇总(一)

    这篇博客"利用iText操作PDF从数据库导出大量数据--汇总(一)"显然讨论了如何利用iText将数据库中的数据高效地导出到PDF文件中,这对于报告生成、数据分析或者报表制作等场景非常有用。 首先,我们需要了解iText的...

    itext5 jar 包

    这个库广泛应用于各种场景,包括报表生成、电子发票、合同制作等,使得在Java应用程序中生成高质量的PDF文档变得简单易行。 **iText5** 是由iText Software Corporation开发的开源项目,它提供了丰富的API,可以...

    常用报表操作,itext_make_pdf,itext_make_word,jexcel_make_excel,poi_make_excel,pdf,Word,excel

    在报表场景中,iText常被用来将数据转换为易于阅读和打印的PDF格式。 其次,`itext_make_word`可能是指一个使用iText库创建Word文档的实现,尽管iText主要设计用于PDF,但可以通过一些技巧生成类似Word的DOC或DOCX...

    IText 2.1.7 jar 包

    这在报表生成、电子发票或合同制作等场景中非常有用。 2. **PDF编辑**:虽然PDF格式通常被认为是只读的,但IText提供了编辑现有PDF文档的能力,如修改文本、替换图像、添加水印或者更改页面布局。 3. **表单处理**...

    itext相关jar包

    在实际应用中,例如企业报表生成、电子发票制作或者合同模板填充等场景,IText都能发挥重要作用。开发者可以根据需求,选择合适的版本和扩展包,灵活构建满足特定需求的文档处理系统。 总结起来,IText是一个功能...

    iText多种jar包

    它以其灵活性和强大的功能,在报表生成、电子发票、合同制作等场景中表现出色。标题中的“iText多种jar包”指的是iText的不同版本或者不同功能的扩展包。 1. **iText-2.1.7.jar**: 这是iText的2.1.7版本,是该库的...

    itext 2.1.7工具包及demo,java生成pdf

    通过熟悉其API和示例,我们可以轻松地在项目中集成PDF生成功能,无论是简单的文本报告,还是复杂的报表和表单,IText都能应对自如。尽管后续版本可能对商业使用有所限制,但2.1.7版本的开源特性使其成为一个极具价值...

    iText-5.0.5与iTextAsian包

    在实际应用中,iText常被用于B2B业务中的报表生成、发票制作、电子合同签署等领域。通过熟练掌握iText的API,开发者可以实现自动化文档处理流程,提高工作效率。同时,由于iText是开源的,开发者可以查看源代码,...

    iText的学习是关于报表方面的

    ### iText学习与报表制作详解 #### 一、iText简介及应用场景 iText是一款功能强大的PDF处理库,主要用于在Java应用中创建、修改、显示和打印PDF文档。该库支持多种操作系统,并且广泛应用于各种业务场景中。通过...

Global site tag (gtag.js) - Google Analytics