/**
*
*/
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制作。
分享到:
相关推荐
在IT行业中,尤其是在报表生成、电子发票制作以及文档自动化等领域,IText是广泛应用的工具之一。 在描述中提到的“eclipse3.2+myeclipse5.5”是两个流行的Java集成开发环境(IDE)。Eclipse是一个通用的开源IDE,...
在使用iText进行报表制作时,柱形图、饼图和折线图是数据可视化的三种基本类型,它们各有特点: 1. **柱形图(Bar Chart)**: - 柱形图用于比较不同类别之间的数值,通过长条的高度表示数据量的大小。在iText中,...
开发者可以使用itext API来动态创建PDF,这在报表生成、发票制作、电子书创建等领域非常有用。 **主要特性:** 1. **文本处理**:支持多种字体、字号、样式和颜色,可以设置文本对齐方式、行距、段落间距等。 2. **...
相关教程 iText 简介 iText创建文档简介 iText入门实例 IText使用PDF模板输出报表的实践 我和iText第一次亲密接触 相关JAR iText-2.1.7.jar(核心) iTextAsian.jar(中文支持) iText-rups-2.1.7.jar iText-rtf-...
jsp用pdf文件制作报表,itext最新jar包。
综上所述,"itext-2.0.3.jar"和"iTextAsian.jar"在JasperReports和iReport的报表制作中扮演了核心角色,特别是对于包含中文内容的报表。这两个库解决了中文字符的显示问题,使得开发者能够创建出具有中文支持的高...
这两个JAR(Java Archive)文件在IT行业中扮演着重要角色,特别是在自动化文档生成和报表制作的场景下。 iText是一个开源的Java库,它允许开发人员通过编程方式创建、修改和操作PDF文档。这个库提供了一系列API,...
- **电子书制作**:在制作包含中文或其他亚洲语言的电子书时,iTextAsian可以确保文字的正确显示和布局。 - **合同签署**:利用iText的数字签名功能,可以实现安全的电子合同签署,同时支持中文注释和条款。 - **PDF...
iText允许开发者通过编程方式生成高质量的PDF文档,包括文本、图像、表格、链接等多种元素,适用于各种业务场景,如报表生成、电子书制作等。 iText-2.1.7.jar是iText库的主要部分,包含了处理PDF文档的核心功能。...
这个库在IT行业中广泛应用,尤其在需要生成动态报表、发票、证书等文档时,iText能够提供灵活且高效的解决方案。在Java源程序中使用iText,开发者可以轻松地添加文本、图像、表格、超链接以及各种复杂的布局到PDF...
在Java开发中,报表制作是一项重要的任务,它涉及到数据的收集、处理和展示,以便于数据分析和决策制定。本资源包汇聚了关于Java报表制作的相关文档,为开发者提供了一个便捷的资料库,节省了寻找和学习的时间。下面...
这篇博客"利用iText操作PDF从数据库导出大量数据--汇总(一)"显然讨论了如何利用iText将数据库中的数据高效地导出到PDF文件中,这对于报告生成、数据分析或者报表制作等场景非常有用。 首先,我们需要了解iText的...
这个库广泛应用于各种场景,包括报表生成、电子发票、合同制作等,使得在Java应用程序中生成高质量的PDF文档变得简单易行。 **iText5** 是由iText Software Corporation开发的开源项目,它提供了丰富的API,可以...
在报表场景中,iText常被用来将数据转换为易于阅读和打印的PDF格式。 其次,`itext_make_word`可能是指一个使用iText库创建Word文档的实现,尽管iText主要设计用于PDF,但可以通过一些技巧生成类似Word的DOC或DOCX...
这在报表生成、电子发票或合同制作等场景中非常有用。 2. **PDF编辑**:虽然PDF格式通常被认为是只读的,但IText提供了编辑现有PDF文档的能力,如修改文本、替换图像、添加水印或者更改页面布局。 3. **表单处理**...
在实际应用中,例如企业报表生成、电子发票制作或者合同模板填充等场景,IText都能发挥重要作用。开发者可以根据需求,选择合适的版本和扩展包,灵活构建满足特定需求的文档处理系统。 总结起来,IText是一个功能...
它以其灵活性和强大的功能,在报表生成、电子发票、合同制作等场景中表现出色。标题中的“iText多种jar包”指的是iText的不同版本或者不同功能的扩展包。 1. **iText-2.1.7.jar**: 这是iText的2.1.7版本,是该库的...
通过熟悉其API和示例,我们可以轻松地在项目中集成PDF生成功能,无论是简单的文本报告,还是复杂的报表和表单,IText都能应对自如。尽管后续版本可能对商业使用有所限制,但2.1.7版本的开源特性使其成为一个极具价值...
在实际应用中,iText常被用于B2B业务中的报表生成、发票制作、电子合同签署等领域。通过熟练掌握iText的API,开发者可以实现自动化文档处理流程,提高工作效率。同时,由于iText是开源的,开发者可以查看源代码,...
### iText学习与报表制作详解 #### 一、iText简介及应用场景 iText是一款功能强大的PDF处理库,主要用于在Java应用中创建、修改、显示和打印PDF文档。该库支持多种操作系统,并且广泛应用于各种业务场景中。通过...