itextpdf表格居中.docx
- 文档编号:25533826
- 上传时间:2023-06-09
- 格式:DOCX
- 页数:12
- 大小:20.88KB
itextpdf表格居中.docx
《itextpdf表格居中.docx》由会员分享,可在线阅读,更多相关《itextpdf表格居中.docx(12页珍藏版)》请在冰豆网上搜索。
itextpdf表格居中
竭诚为您提供优质文档/双击可除
itext,pdf,表格,居中
篇一:
葵花宝典之itext表格
itext学习2--表格
(20xx-02-0111:
26:
08)
转载
标签:
分类:
others
itext
表格
it
一个最基本的pdfptable的例子
packagecom.itext.test;
importjava.awt.color;
importjava.io.Fileoutputstream;
importjava.io.ioexception;
importcom.lowagie.text.document;
importcom.lowagie.text.documentexception;
importcom.lowagie.text.paragraph;
importcom.lowagie.text.pdf.pdfpcell;
importcom.lowagie.text.pdf.pdfptable;
importcom.lowagie.text.pdf.pdfwriter;
publicclassmyFirsttable{
publicstaticvoidmain(string[]args){
system.out.println("myFirstpdfptable");
//步骤1:
创建一个document对象
documentdocument=newdocument();
try{
//步骤2:
//我们为document创建一个监听,并把pdF流写到文件中
pdfwriter.getinstance(document,newFileoutputstream("c:
\\myFirsttable.pdf"));
//步骤3:
打开文档
document.open();
//创建一个有3列的表格
pdfptabletable=newpdfptable(3);
//定义一个表格单元
pdfpcellcell=newpdfpcell(newparagraph("headerwithcolspan3"));
//定义一个表格单元的跨度
cell.setcolspan(3);
//把单元加到表格中
table.addcell(cell);
//把下面这9项顺次的加入到表格中,当一行充满时候自动折行到下一行
table.addcell("1.1");
table.addcell("2.1");
table.addcell("3.1");
table.addcell("1.2");
table.addcell("2.2");
table.addcell("3.2");
table.addcell("1.3");
table.addcell("2.3");
table.addcell("3.3");
//重新定义单元格
cell=newpdfpcell(newparagraph("celltest1"));
//定义单元格的框颜色
cell.setbordercolor(newcolor(255,0,0));
//把单元格加到表格上,默认为一个单元
table.addcell(cell);
//重新定义单元格
cell=newpdfpcell(newparagraph("celltest2"));
//定义单元格的跨度
cell.setcolspan
(2);
//定义单元格的背景颜色
cell.setbackgroundcolor(newcolor(0xc0,0xc0,0xc0));
//增加到表格上
table.addcell(cell);
//增加到文档中
document.add(table);
}catch(documentexceptionde){
system.err.println(de.getmessage());
}catch(ioexceptionioe){
system.err.println(ioe.getmessage());
}
//步骤5:
关闭文档
document.close();
}
}
看完这个例子,又看过我第一天记录的朋友一定会问为什么不用table,我在这里解释一下。
pdfptableisaverypowerfulandflexibleobject,butforsomespecificneeds,youcanalsouseoneofthealternativesforpdfptable.ifyouhaveaswingapplicationwithjtables,youcanlookatthejtable2pdfsection.pdfptableonlyworksforgeneratingpdF.ifyouneedtogeneratehtmlorRtF,youneedthe(nolongersupported)tableobject.
上面这句话来之---itext的tutorial,你应该明白了吧。
ifyouaddapdfptablewithdocument.add(),thedefaultwidthofthetableis80percentoftheavailablespaceandthetableisalignedinthecenter.youcanchangethesedefaultswithsetwidthpercentageandsethorizontalalignment.
下面就讲一个可以自己定义表格宽度和对齐方式的例子:
packagecom.itext.test;
importjava.awt.color;
importjava.io.Fileoutputstream;
importjava.io.ioexception;
importcom.lowagie.text.document;
importcom.lowagie.text.documentexception;
importcom.lowagie.text.element;
importcom.lowagie.text.pagesize;
importcom.lowagie.text.paragraph;
importcom.lowagie.text.pdf.baseFont;
importcom.lowagie.text.pdf.pdfpcell;
importcom.lowagie.text.pdf.pdfptable;
importcom.lowagie.text.pdf.pdfwriter;
publicclasstablewidthalignment{
publicstaticvoidmain(string[]args)throwsdocumentexception,ioexception{
//定义中文字体
baseFontbfchinese=baseFont.createFont("stsong-light",
"unigb-ucs2-h",baseFont.not_embedded);
com.lowagie.text.Fontfontcn=newcom.lowagie.text.Font(bfchinese,12,com.lowagie.text.Font.noRmal);
篇二:
利用itext生成复杂pdf
利用itext生成复杂pdf
内容包括:
复杂表格的生成(单元格合并,边框,位置布局,背景色)
页脚输出,中文字体输出
划直线
下载包itext-5.0.3.jar
importjava.io.Fileoutputstream;
importjava.io.ioexception;
.malformeduRlexception;
importcom.itextpdf.text.*;
importcom.itextpdf.text.pdf.baseFont;
importcom.itextpdf.text.pdf.cmykcolor;
importcom.itextpdf.text.pdf.columntext;
importcom.itextpdf.text.pdf.pdfpcell;
importcom.itextpdf.text.pdf.pdfptable;
importcom.itextpdf.text.pdf.pdfwriter;
importcom.itextpdf.text.pdf.draw.lineseparator;
publicclassitexttest{
//publicvoidonendpage(pdfwriterpdfwriter,documentdocument){
//columntext.showtextaligned(pdfwriter.getdirectcontent(),
//element.align_centeR,newphrase(string.format("page%d",//设置页码
//pdfwriter.getpagenumber())),300,50,0);
//}
publicstaticvoidmain(string[]args)throwsdocumentexception,
malformeduRlexception,ioexception{
//1、实例化文档对象
documentdocument=newdocument(pagesize.a4,37,30,50,40);
//2、创建pdfwriter对象(其他编写器包括htmlwriter、Rtfwriter、xmlwriter)pdfwriterwriter=pdfwriter.getinstance(document,newFileoutputstream("d:
\\new.pdf"));document.open();//生成的pdf存放位置
//中文字体格式
//baseFontbfchinese=baseFont.createFont("simyou.ttF",//simyou.ttF在本地目录
下去拷贝c:
/windows/Fonts/simyou.ttF
//baseFont.identity_h,baseFont.not_embedded);
//FontFontchinese=newFont(bfchinese,12,Font.noRmal);
Fontfont1=FontFactory.getFont(FontFactory.couRieR,8,Font.bold,basecolor.black);
Fontfont2=FontFactory.getFont(FontFactory.couRieR,8,
Font.noRmal,basecolor.black);
Fontfont3=FontFactory.getFont(FontFactory.couRieR,9,
Font.noRmal,basecolor.gRay);
Fontfont5=FontFactory.getFont(FontFactory.couRieR,8,
Font.noRmal,basecolor.black);
//设置页脚
lineseparatorline=new
lineseparator(0.5f,1.3f,basecolor.cyan,element.align_centeR,0);//直线
chunkc=newchunk(line);//line不能直接放入paragraph或phrase中
columntext.showtextaligned(writer.getdirectcontent(),
置
1,newparagraph(string.format("notes"),font3),55,55,0);//通过坐标控制显示位columntext.showtextaligned(writer.getdirectcontent(),element.align_centeR,newparagraph(c),300,50,0);
//设置页码
//columntext.showtextaligned(writer.getdirectcontent(),
//element.align_centeR,newphrase(string.format("page%d",
//writer.getpagenumber())),300,50,0);
//document.newpage();
pdfptablet=newpdfptable
(2);//创建表格
t.setwidthpercentage(100);//百分比
t.setspacingbefore(20);
//表格元素1
imageimage1=image.getinstance("1.jpg");
image1.scaleabsolute(170f,100f);//宽、高
pdfpcellc1=newpdfpcell();
c1.addelement(image1);
paragraph[]parr=newparagraph[16];
parr[0]=newparagraph("zycooeu",font1);
parr[1]=newparagraph("ls21armstronghouse,Firstavenue",font2);
parr[2]=newparagraph("doncastersouthyorkshiredn93ga",font2);
parr[3]=newparagraph("unitedkingdom",font2);
parr[4]=newparagraph("Vatgb2065852514",font2);
for(inti=0;i c1.addelement(parr[i]);
}
c1.setborder(0);//设置单元格边框的无颜色
t.addcell(c1);
//表格元素2
imageimage2=image.getinstance("2.jpg");
image2.scaleabsolute(110f,110f);//宽、高,值为像素pdfpcellc2=newpdfpcell();c2.addelement(image2);//设置图像对齐方式c2.setborder(0);//t.addcell(c2);//表格元素3parr[5]=newparagraph("billto",font2);parr[6]=newparagraph("atime2changet/aVoip.pt",font2);parr[7]=newparagraph("Ruaconsiglieripedroso,123(iberfar)",font2);parr[8]=newparagraph("edificioh",font2);pdfpcellc3=newpdfpcell();c3.addelement(newparagraph(""));for(inti=5;i t.addcell(c7);//元素8pdfpcellc8=newpdfpcell();
pdfptablett=newpdfptable
(2);//向表格单项中镶嵌表格tt.getdefaultcell().setborder(0);
tt.addcell("");tt.addcell("");
tt.addcell("");tt.addcell("");
paragraph[]pars=newparagraph[10];
pdfpcell[]cells=newpdfpcell[10];
pars[0]=newparagraph("invoicedate:
",font2);pars[1]=newparagraph("09/03/20xx",font2);
pars[2]=newparagraph("terms:
",font2);
pars[3]=newparagraph("dueonReceipt",font2);pars[4]=newparagraph("duedate:
",font2);
pars[5]=newparagraph("09/03/20xx",font2);
pars[6]=newparagraph("p.o.#:
",font2);
pars[7]=newparagraph("euVat-pt507441338",font2);pars[8]=newparagraph("euVatno.:
",font2);
pars[9]=newparagraph("pt507441338",font2);
for(inti=0;i }pars[i].setalignment
(2);//设置该段落为靠右显示cells[i]=newpdfpcell();cells[i].setborder(0);//cell必须有,再addelement添加才能设置对齐方式//cell1.setphrase(para);是错的cells[i].addelement(pars[i]);tt.addcell(cells[i]);tt.setwidthpercentage(100);//百分比c8.addelement(tt);c8.setVerticalalignment(element.align_Right);c8.setRowspan
(2);//向下合并单元格c8.setborder(0);t.addcell(c8);//元素9pdfpcellc9=newpdfpcell();paragraphpar17=newparagraph("queluzdebaix
o",font2);paragraphpar18=newparagraph("2730-501barcarena",font2);paragraphpar19=newparagraph("portugal",font2);c9.addelement(newparagraph(""));c9.addelement(par17);c9.addelement(par18);
度
c9.setborder(0);t.addcell(c9);//第二张大表pdfptablet2=newpdfptable(5);//创建表格intwidth[]={8,47,10,10,25};//设置每列宽度比例t2.setwidths(width);t2.setwidthpercentage(100);//百分比t2.getdefaultcell().setminimumheight(25);t2.getdefaultcell().setborder(0);//设置默认最低高度(再加入空格行时候可以直接用);t2.addcell("");显示为默认高//向第二张大表中加入元素Fontfont4=FontFactory.getFont(FontFactory.couRieR,8,Font.bold,basecolor.white);pdfpcell[][]ccs1=newpdfpcell[5][5];paragraph[][]ppars1=newparagraph[5][5];ppars1[0][0]=newparagraph("#",font4);ppars1[0][1]=newparagraph("itemppars1[0][2]=newparagraph("qty",font4);ppars1[0][3]=newparagraph("Rate",font4);ppars1[0][4]=newparagraph("amount",font4);ppars1[1][0]=newparagraph("1",font2);ppars1[1][1]=newparagraph("u20-a202",font2);ppars1[1][2]=newparagraph("1,00",font2);ppars1[1][3]=newparagraph("140,00",font2);ppars1[1][4]=newparagraph("140,00",font2);ppars1[2][0]=newparagraph("2",font2);ppars1[2][1]=newparagraph("2gsm",font2);ppars1[2][2]=newparagraph("1,00",font2);ppars1[2][3]=newparagraph("117,00",font2);ppars1[2][4]=newparagraph("117,00",font2);ppars1[3][0]=newparagraph("3",font2);ppars1[3][1]=newparagraph("coofoned60",font2);ppars1[3][2]=newparagraph("5,00",font2);ppars1[3][3]=newparagraph("46,80",font2);ppars1[3][4]=newparagraph("234,00",font2);ppars1[4][0]=newparagraph("4",font2);ppars1[4][1]=newparagraph("shipping",font2);ppars1[4][2]=newparagraph("1,00",font2);ppars1[4][3]=newparagraph("38,60",font2);ppars1[4][4]=newparagraph("38,60",font2);
篇三:
itext用法详细教程介绍
一直以来想总结下项目中用到的itext,无意中发现了这篇文章,总结的比较好,所以
一、前言
在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成pdF报表的java组件--itext。
通过在服务器端使用jsp或javabean生成pdF报表,客户端采用超级连接显示或下载得到生成的报表,这样就很好的解决了b/s系统的报表处理问题。
二、itext简介
itext是著名的开放源码的站点sourceforge一个项目,是用于生成pdF文档的一个java类库。
通过itext不仅可以生成pdF或rtf的文档,而且可以将xml、html文件转化为pdF文件。
itext的安装非常方便,在/itext/download.html-download网站上下载itext.jar文件后,只需要在系统的classpath中加入itext.jar的路径,在程序中就可以使用itext类库了。
三、建立第一个pdF文档
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- itextpdf 表格 居中