itext,pdf,表格,居中

合集下载

itext中文pdf说明

itext中文pdf说明

itext中文pdf说明iText是一种用于创建和处理PDF文件的开源Java库。

它提供了丰富的功能和灵活的接口,可以满足各种PDF处理需求。

本文将详细介绍iText库的特点、用法以及常见应用场景。

一、iText库简介iText是一款跨平台的Java库,旨在帮助开发人员轻松创建和处理PDF文件。

它提供了底层API和高级API,使用户能够灵活地操作PDF文件的各个方面,如内容创建、页面布局、文本格式、图片插入以及表单处理等。

二、iText的特点和优势1. 强大的功能:iText支持创建、合并、拆分和操作PDF文档。

它可以添加文本、图片、表格和图形,支持字体设置、样式和颜色定义,还可以添加书签、水印和数字签名等特性。

2. 多样化的输出形式:iText可以将PDF文件输出到多种形式,如文件、流、字节数组或网络流。

这使得iText非常适用于生成动态PDF文档或将PDF数据集成到其他应用程序中。

3. 兼容性强:iText兼容多种PDF版本,并能够处理不同版本之间的互转。

它支持PDF/A、PDF/X和PDF/UA等国际标准,以及中文、日文、韩文等复杂语言的编码。

4. 灵活易用的接口:iText提供了简单易用的API,使开发人员能够快速上手,轻松实现PDF文件的创建和处理。

用户可以根据自己的需求选择底层API或高级API进行操作。

5. 大量的文档和示例:iText官方网站上提供了大量的文档和示例代码,包括教程、API文档和示例应用程序。

这些资源能够帮助用户更好地理解和使用iText库。

三、iText的应用场景1. 报表生成:iText可以用于生成各种形式的报表,包括财务报表、销售报表、数据统计报表等。

用户可以灵活地设置报表的格式、样式和布局,使报表具有更好的可读性和美观性。

2. 文档处理:iText可以用于处理各种文档,如合同、发票、简历和证书等。

用户可以根据实际需求插入文字、图片和表格,还可以设置文档的页眉、页脚和页码等。

itext,表格居中

itext,表格居中

竭诚为您提供优质文档/双击可除itext,表格居中篇一:itext使用简单介绍pdFitext使用简单介绍发布日期:20xx-06-19一、前言在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成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文档用itext生成pdF文档需要5个步骤:①建立com.lowagie.text.document对象的实例。

documentdocument=newdocument();②建立一个书写器(writer)与document对象关联,通过书写器(writer)可以将文档写入到磁盘中。

pdFwriter.getinstance(document,newFileoutputstream( "helloworld.pdF"));③打开文档。

document.open();④向文档中添加内容。

document.add(newparagraph("helloworld"));⑤关闭文档。

document.close();通过上面的5个步骤,就能产生一个helloworld.pdF的文件,文件内容为"helloworld"。

JavaiText5.5.1绘制PDF表格

JavaiText5.5.1绘制PDF表格

JavaiText5.5.1绘制PDF表格会有两个⽂件夹:extrajars中的extrajars-2.3.jar⽂件⽤于解决中⽂不显⽰的问题。

将下载的itext-5.5.1⽂件解压之后,将itextpdf-5.5.1.jar导⼊就可以使⽤了。

由于在使⽤过程中没有API 参考,以及⽹上的资料都是之前⽼版本的,所以⼀些⽤法都是经过不断的尝试得出来的。

要⽣成的PDF表格如下两幅图所⽰:iText简单介绍:(1) iText中⽤⽂本块(Chunk)、短语(Phrase)和段落(paragraph)处理⽂本;(2)⽂本块(Chunk)是处理⽂本的最⼩单位,有⼀串带格式(包括字体、颜⾊、⼤⼩)的字符串组成;(3)短语(Phrase)由⼀个或多个⽂本块(Chunk)组成,短语(Phrase)也可以设定字体,但对于其中以设定过字体的⽂本块(Chunk)⽆效;(4)段落(paragraph)由⼀个或多个⽂本块(Chunk)或短语(Phrase)组成,相当于WORD⽂档中的段落概念,同样可以设定段落的字体⼤⼩、颜⾊等属性。

另外也可以设定段落的⾸⾏缩进、对齐⽅式(左对齐、右对齐、居中对齐)。

通过函数setAlignment可以设定段落的对齐⽅式, setAlignment的参数1为居中对齐、2为右对齐、3为左对齐,默认为左对齐。

(5)表格(PdfPTable),通过添加列(PdfPCell)来拼凑表格,顺序是从左到右、从上到下,可以通过setBorderWidth()⽅法设置列的边框宽度,setRowspan()设置此列横跨⼏⾏,setColspan()设置此列横跨⼏列。

对于列的详细设置可以通过.set查看。

代码:⼀个⼯具类1public class FpdkImportPDF {23/**4 * 代开增值税专⽤发票缴纳税款申报单5*/6public static void dkzzszyfp() {7// 1:建⽴Document对象实例8 Document document = new Document();9try {10// 2:建⽴⼀个PDF 写⼊器与document对象关联通过书写器(Writer)可以将⽂档写⼊到磁盘中11 StringBuilder filename = new StringBuilder();12 filename.append("代开增值税专⽤发票缴纳税款申报单").append(new SimpleDateFormat("yyyyMMddHHmm").format(new Date())).append(".pdf");13 PdfWriter.getInstance(document, new FileOutputStream(filename.toString()));1415// 3:打开⽂档16 document.open();1718//解决中⽂不显⽰问题19 BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);20 Font fontChina18 = new Font(bfChinese, 18);21 Font fontChina12 = new Font(bfChinese, 12);2223// 4:向⽂档添加内容24// 标题25 Paragraph titleParagraph = new Paragraph("代开增值税专⽤发票缴纳税款申报单",fontChina18);26 titleParagraph.setAlignment(Element.ALIGN_CENTER);// 居中27 document.add(titleParagraph);2829// 空格30 Paragraph blank1 = new Paragraph(" ");31 document.add(blank1);3233// 编号34 Chunk c1 = new Chunk("编号:", fontChina12);35 Chunk c2 = new Chunk("20140531001", fontChina12);36 Paragraph snoParagraph = new Paragraph();37 snoParagraph.add(c1);38 snoParagraph.add(c2);39 snoParagraph.setAlignment(Element.ALIGN_RIGHT);40 document.add(snoParagraph);4142// 空格43 document.add(blank1);4445// 代开税务机关46 Chunk c3 = new Chunk("代开税务机关名称:青岛经济技术开发区国税局", fontChina12);47 Paragraph dkswjgParagraph = new Paragraph();48 dkswjgParagraph.add(c3);49 dkswjgParagraph.setAlignment(Element.ALIGN_LEFT);50 document.add(dkswjgParagraph);5152// 提醒53 String alert = "我单位提供的开票资料真实、完整、准确,符合有关法律、法规,否则我单位将承担⼀切法律责任,现申请代开增值税专⽤发票。

Itext基础知识和PDF解析操作

Itext基础知识和PDF解析操作

Itext基础知识和PDF解析操作⼀、Itext简介1、API地址:javadoc/index.html如 D:/MyJAR/原JAR包/PDF/itext-5.5.3/itextpdf-5.5.3-javadoc/index.html2、功能:a Free Java-PDF3、中⽂⽀持:iTextAsian.jar,现在⾼版本Itext不⽀持语⾔包。

4、使⽤的版本:iTextpdf-5.0.0.jar, iTextAsian-2.0.jar⼆、Itext API(⼀)PDF⽂档⽣成的5步/*** 5步⽣成⼀个PDF*/public void createPdf() throws Exception {// 1-创建⽂本对象 DocumentDocument document = new Document(PageSize.A4, 500, 150, 50, 50);// 2-初始化 pdf输出对象 PdfWriterPdfWriter.getInstance(document, out);// 3-打开 Documentdocument.open();// 4-往 Document 添加内容document.add(new Paragraph("Hello! PDF!!!"));// 5-关闭 Documentdocument.close();}</span>View Code(⼆)⽂档对象:Document、Rectangle、PageSize1、 Document — PDF对象1)构造⽅法:①、Document(Rectangle pageSize, float marginLeft, float marginRight, float marginTop,float marginBottom):分别指pdf页⾯⼤⼩和内容距离⽂档边的距离。

②、默认 Document()为:A4,36,36,36,362)属性:①、基本属性:版本(PdfVersionImp)、标题(Title)、作者(Author)、主题(Subject)、关键字(Keywords)、创建者(Creator)等等②、其他属性:页⾯空⽩(Margins和marginLeft各个⽅位)3)⽅法:①、 add()-添加内容,newPage()-下⼀页, addDocListener-监听器②、getPageNumber()-第⼏页,getPageSize-页⾯⼤⼩,top|left|right|bottom-页⾯预定义位置,置页眉页脚或者页码时有⽤,内部调⽤Rectangle的属性setJavaScript_onLoad(添加js)等等// 2-2 横向打印document = new Document(PageSize.A4.rotate());// 横向打印document = new Document(tRectangle.rotate());// 横向打印try {// 解析器PdfWriter writer= PdfWriter.getInstance(document, new FileOutputStream("pdf/pdfText.pdf"));// 3-为pdf添加属性信息document.addAuthor("作者");document.addTitle("标题");document.addSubject("主题");document.addKeywords("关键字");//页边空⽩document.setMargins(10, 20, 30, 40);document.open();// 4-PDF添加内容document.add(new Paragraph("Hello world"));// 5-添加Pagedocument.newPage();// writer.setPageEmpty(false);//显⽰空内容的页writer.setPageEmpty(true);//不会显⽰空内容的页document.newPage();document.add(new Paragraph("New page"));logger.debug("PDF创建结束....");View Code2、 Rectangle— 页⾯对象1)构造⽅法:Rectangle(final float llx, final float lly, final float urx, final float ury)Rectangle(PageSize.A4) -PageSize 封装常⽤的 Rectangle2)属性①、NO_BORDER-⽆边框(单元格),left|top|right|bottom3)⽅法①、rotate()-横向打印②、setBackgroundColor()-背景⾊,setBorder()-边框,setBorderColor()-边框颜⾊// 1-创建⼀个pdf⽂档,documentDocument document = null;document = new Document();// 默认PageSize.A4, 36, 36, 36, 36document = new Document(PageSize.A4);// 等效于上⾯的document = new Document(PageSize.A4, 50, 50, 50, 50);// PageSize封装了⼤量常⽤的Rectangle数据// 2-Rectangle(pdf页⾯)创建Document// ⼀般是四个参数表⽰:左下⾓的坐标和右上⾓的坐标Rectangle tRectangle = null;tRectangle = PageSize.A4;// PageSize封装了⼤量常⽤的Rectangle数据tRectangle = new Rectangle(800, 600);// 长宽tRectangle = new Rectangle(0, 0, 800, 600);// 等于上⾯// 2-1 其他页⾯属性:不能和PageSize封装的静态⼀起使⽤tRectangle.setBackgroundColor(BaseColor.BLACK);// 背景⾊tRectangle.setBorder(1220);// 边框tRectangle.setBorderColor(BaseColor.BLUE);tRectangle.setBorderWidth(244.2f);document = new Document(tRectangle);</span>View Code3、综合案例代码:<span style="font-family:SimSun;"> /*** 页⾯⼤⼩,页⾯背景⾊,页边空⽩,Title,Author,Subject,Keywords** @throws DocumentException*/public void myPDF() throws DocumentException {// 1- 页⾯的属性Rectangle tRectangle = new Rectangle(PageSize.A4); // 页⾯⼤⼩// tRectangle = new Rectangle(0, 0, 800, 600);tRectangle.setBackgroundColor(BaseColor.ORANGE); // 页⾯背景⾊tRectangle.setBorder(1220);// 边框tRectangle.setBorderColor(BaseColor.BLUE);// 边框颜⾊tRectangle.setBorderWidth(244.2f);// 边框宽度Document doc = new Document(tRectangle);// 定义⽂档doc = new Document(tRectangle.rotate());// 横向打印PdfWriter writer = PdfWriter.getInstance(doc, out);// 书写器// PDF版本(默认1.4)writer.setPdfVersion(PdfWriter.PDF_VERSION_1_2);// 2-PDF⽂档属性doc.addTitle("Title@sample");// 标题doc.addAuthor("Author@rensanning");// 作者doc.addSubject("Subject@iText sample");// 主题doc.addKeywords("Keywords@iText");// 关键字doc.addCreator("Creator@iText");// 谁创建的// 3-综合属性:doc.setMargins(10, 20, 30, 40);// 页边空⽩doc.open();// 打开⽂档doc.add(new Paragraph("Hello World"));// 添加内容// 4-添加下⼀页doc.newPage();writer.setPageEmpty(true);// fasle-显⽰空内容的页;true-不会显⽰doc.newPage();doc.add(new Paragraph("New page"));doc.close();}</span>View Code(三)内容对象:1、中⽂⽀持:1)BaseFont-确认⽀持中⽂2)Font-字体的设置,如颜⾊,字体,⼤⼩等3)固定⽤法如下:<span style="font-family:SimSun;"> /*** ⽀持中⽂** @return*/public Font getChineseFont() {BaseFont bfChinese;Font fontChinese = null;try {bfChinese = BaseFont.createFont("STSongStd-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);// fontChinese = new Font(bfChinese, 12, Font.NORMAL);fontChinese = new Font(bfChinese, 12, Font.NORMAL, BaseColor.BLUE);} catch (DocumentException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return fontChinese;}}</span>View Code2、Element接⼝1)内容对象基本都实现这个接⼝。

使用itextpdf解决PDF合并的问题

使用itextpdf解决PDF合并的问题

使⽤itextpdf解决PDF合并的问题itextpdf解决PDF合并的问题本⽂章是我在项⽬开发过程中解决了⼀个关于PDF显⽰的需求⽽记录的。

需求是这样的,需要将两个PDF进⾏合并,⼀个PDF是根据数据库的信息在在后台形成的(实际不存在的PDF),另⼀个是磁盘保存的PDF⽂件(这个PDF⽂件后期会变成从云端获取)。

作为⼀个Java菜鸟,这个问题解决了数天,还是在leader的指导下解决的。

在这⾥做⼀下关键代码的记录。

项⽬主要包含了以下关键词:(我不做详解了,主要是⽤了这些)- Spring MVC、Spring、Hibernate- Maven- Java- itextpdf- MySQL- JavaWeb相关⾸先是itextpdf的依赖<dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version></dependency>如何在后台⽣成⼀个PDF这个问题,百度上有很多解决⽅案,因为我需要将这个⽣成的PDF和已存在的PDF拼接,于是尝试了多种⽅案,决定将这个以⽂档的形式,将这个⽂档转为字节数组,然后⽤itextpdf将流读取到PDF中。

⽣成PDF的部分代码:import java.io.ByteArrayOutputStream;import er;import com.itextpdf.text.BaseColor;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Element;import com.itextpdf.text.Font;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfContentByte;import com.itextpdf.text.pdf.PdfPCell;import com.itextpdf.text.pdf.PdfPTable;import com.itextpdf.text.pdf.PdfReader;import com.itextpdf.text.pdf.PdfWriter;import com.itextpdf.text.pdf.parser.PdfReaderContentParser;public class ReportKit {public static byte[] createReport(User user) throws Exception {ByteArrayOutputStream ba = new ByteArrayOutputStream();Document doc = new Document();//创建⼀个document对象PdfWriter writer = PdfWriter.getInstance(doc, ba);//这个PdfWriter会⼀直往⽂档⾥写内容。

itext,读取pdf表格

itext,读取pdf表格

竭诚为您提供优质文档/双击可除itext,读取pdf表格篇一:itext中table和pdftable的区别itext中pdfptable和table区别1.itextsharp.text.table的Rowspan方法可以合并行,缺点是,每行的高度是根据内容自动调整的.2.pdfptable的minimumheight方法可以设置行的高度,但是不能合并行.3.现在的问题是既要能合并行,又要能设置行的高度.pdfptable的pdfpcell有个方法disableborderside(1);disableborderside();方法有一个参数,有四个值1,2,4,8分别对应每行的上,下,左,右四个边框.pdfptable每行的四个边框默认是显示的.要想隐藏上边框,disableborderside();方法的参数设置为1就行了.这样就pdfptable就可以变相地实现合并行.唯一不足的是合并行里面的内容要动态实现就不好调整了.例子1:(pdfptable的用法)stringoption2="1,选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目";paragraphoptions2=newparagraph(option2,newFont(bfch inese,12));options1.setalignment(element.align_leFt);doc.add(options2);pdfptabletable1=newpdfptable(4);table1.sethorizontalalignment(element.align_middle) ;inthws1[]={15,30,15,30,};table1.setwidths(hws1);table1.settotalwidth(100);image.scaleabsolute(100,100);phrasecontent=newphrase("a选择题选项测试,加图片的的。

itext7 方法解释

itext7 方法解释

itext7 方法解释iText 7 是一个用于处理 PDF 文档的 Java 库。

以下是 iText 7 中的一些常用方法及其解释:1.Document类中的方法:⏹add(Content): 将内容添加到文档中。

⏹close(): 关闭文档并保存更改。

⏹setPageCount(int): 设置文档的页数。

⏹add(Image): 将图像添加到文档中。

⏹add(Paragraph): 将段落添加到文档中。

⏹add(List): 将列表添加到文档中。

⏹add(Table): 将表格添加到文档中。

1.Paragraph类中的方法:⏹add(Content): 向段落中添加内容。

⏹add(Text): 向段落中添加文本。

⏹add(Image): 向段落中添加图像。

⏹add(List): 向段落中添加列表。

⏹add(Table): 向段落中添加表格。

1.Image类中的方法:⏹setWidth(float): 设置图像的宽度。

⏹setHeight(float): 设置图像的高度。

⏹scaleToFit(float, float): 缩放图像以适应指定的宽度和高度。

1.List类中的方法:⏹add(ListItem): 向列表中添加项目。

⏹setSymbol(String): 设置列表符号的类型。

⏹setNumberStyle(String): 设置列表编号的样式。

1.Table类中的方法:⏹addCell(Cell): 向表格中添加单元格。

⏹setWidthPercentage(int): 设置表格的宽度百分比。

⏹setSpacing(int): 设置表格单元格之间的间距。

1.其他常用方法:⏹ColorConstants.BLACK: 获取黑色颜色对象。

⏹FontConstants.HELVETICA_BOLD: 获取粗体Helvetica字体对象。

⏹PdfDocument.createNew(): 创建一个新的PDF文档对象。

itextpdf 单元格格式

itextpdf 单元格格式

iTextPDF 是一个流行的库,用于在 Java 中处理 PDF 文件。

在使用 iTextPDF 创建或修改 PDF 文档时,你可能需要设置单元格的格式。

以下是使用 iTextPDF 设置单元格格式的一些关键点:
1.调整单元格大小: 使用setWidth()和setHeight()方法来调整单元格的
大小。

2.设置边框: 使用setBorder()方法设置单元格的边框样式。

你可以选择不
同的边框样式,如BorderStyle.NONE, BorderStyle.DASHED,
BorderStyle.BEVELED, BorderStyle.DOUBLE等。

3.合并单元格: 使用setMergedCell()方法可以将多个单元格合并成一个单
元格。

4.设置背景色: 使用setBackgroundColor()方法可以为单元格设置背景
色。

5.对齐内容: 使用setHorizontalAlignment()和setVerticalAlignment()
方法可以设置内容的水平和对齐方式。

6.添加图片和文字: 使用addCell()方法,可以添加图片和文字到单元格
中。

7.自定义单元格样式: 如果你需要更高级的样式控制,可以使用CellStyle
类来创建自定义的单元格样式。

在调整单元格格式时,确保与整体文档的设计和布局相协调,以获得最佳的用户体验。

如果你有具体的代码示例或遇到特定问题,可以提供更多细节,以便我能提供更具体的帮助。

ITextPdfPTable表格单元的居中显示

ITextPdfPTable表格单元的居中显示

ITextPdfPTable表格单元的居中显⽰昨晚寻找了⽹上很多关于IText表格居中问题,他们其中的有些代码我即使复制上去⽣成的doc表格的⽂字都是不居中的,后来我⾃⼰找出了⼀种居中⽅式:为PdfPCell对象添加paragraph对象,并将该paragraph设置为居中: PdfPCell cell1 = new PdfPCell();Paragraph para = new Paragraph("该单元居中");//设置该段落为居中显⽰para.setAlignment(1);cell1.setPhrase(para);table.addCell(cell1);代码亲测⽆误,全部代码如下:import com.lowagie.text.*;import com.lowagie.text.pdf.PdfPCell;import com.lowagie.text.pdf.PdfPTable;import com.lowagie.text.rtf.RtfWriter2;import java.io.FileOutputStream;/*** PdfPTable的使⽤⽅法,表格居中问题* User: HYY* Date: 13-8-1* Time: 下午9:54* To change this template use File | Settings | File Templates.*/public class PdfpTableTest {/*** @param args*/public static void main(String[] args) throws Exception {// 创建word⽂档,并设置纸张的⼤⼩Document document = new Document(PageSize.A4);//设置存放位置RtfWriter2.getInstance(document, new FileOutputStream("C:/1.doc"));document.open();//⽣成三列表格PdfPTable table = new PdfPTable(3);//设置表格具体宽度table.setTotalWidth(90);//设置每⼀列所占的长度table.setWidths(new float[]{50f, 15f, 25f});PdfPCell cell1 = new PdfPCell();Paragraph para = new Paragraph("该单元居中");//设置该段落为居中显⽰para.setAlignment(1);cell1.setPhrase(para);table.addCell(cell1);table.addCell(new PdfPCell(new Phrase("無幽之路IText教程")));table.addCell(new PdfPCell(new Phrase("無幽之路IText教程")));document.add(table);document.close();}}。

itext7 方法解释

itext7 方法解释

itext7 方法解释iText 7 方法解释iText 7 是一款用于处理 PDF 文件的Java库,提供了丰富的方法和功能,可以用于创建、编辑和操作 PDF 文档。

本文将解释 iText 7 的一些常用方法,帮助读者更好地理解和应用这个强大的工具。

一、创建 PDF 文件iText 7 提供了创建 PDF 文档的方法,可以使用这些方法来生成一个全新的 PDF 文件。

下面是一个简单的示例代码,展示了如何使用iText 7 创建一个空白的 PDF 文档:```javaimport com.itextpdf.kernel.pdf.PdfDocument;import com.itextpdf.kernel.pdf.PdfWriter;public class CreatePDF {public static void main(String[] args) {String filePath = "path/to/your/pdf/file.pdf";try {PdfWriter writer = new PdfWriter(filePath);PdfDocument pdf = new PdfDocument(writer);// 添加内容和设置样式pdf.close();System.out.println("PDF 文件创建成功!");} catch (Exception e) {System.out.println("PDF 文件创建失败:" + e.getMessage());}}}```在这个示例代码中,首先创建了一个 PdfWriter 对象,它用于将文档写入一个磁盘文件。

然后,通过 PdfDocument 类创建了一个PdfDocument 对象,表示一个 PDF 文档的实例。

接下来,可以通过添加内容和设置样式来编辑这个文档。

itext pdfcell方法

itext pdfcell方法

在 iText 库中,PdfCell类是用于表示 PDF 表格中的单元格的类。

PDF 单元格是表格中的一个元素,可以包含文本、图像和其他元素。

PdfCell提供了一系列方法,用于设置单元格的内容、样式和属性。

以下是一些常用的PdfCell方法及其作用:1.构造方法:PdfCell类有多个构造方法,其中最基本的一个参数的构造方法如下:通过传递一个PdfString对象,可以创建一个包含文本内容的 PDF 单元格。

2.设置文本内容:通过传递一个Phrase对象,可以设置单元格的文本内容。

3.设置边框:通过传递一个Rectangle对象,可以设置单元格的边框样式,例如无边框、实线边框等。

4.设置水平对齐和垂直对齐:通过设置水平对齐和垂直对齐,可以控制单元格中内容的对齐方式。

5.设置背景颜色:通过设置背景颜色,可以为单元格添加背景色。

6.设置单元格合并:通过设置rowspan和colspan,可以合并单元格,跨越多行或多列。

7.设置边框宽度:通过设置边框宽度,可以调整边框的线宽。

8.设置字体:通过设置字体,可以调整单元格中文本的字体样式。

9.设置内边距:通过设置内边距,可以控制单元格内容与边框的距离。

10.设置固定高度:通过设置固定高度,可以确保单元格的高度固定,不受内容自动调整影响。

11.设置旋转:通过设置旋转角度,可以使单元格内容进行旋转。

这只是一小部分PdfCell类的方法。

使用这些方法,你可以定制化表格中的单元格,控制其样式和内容。

记得在生成 PDF 文档时将单元格添加到表格中,最终将表格添加到文档中。

ITextSharp教程用C#制作PDF复杂表格表单_追雨教程

ITextSharp教程用C#制作PDF复杂表格表单_追雨教程

用C#制作PDF文件全攻略前言PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少.本文主要说下itext生成pdf复杂表格。

并附上网上一个最全面的itext教程.效果如下图:目录前言 (1)第一部分iText pdf表格生成教程 (3)第一步:引用itextsharp.dll (4)第二步:创建pdf文档的实例 (4)第三步:定义字体,并打印标题.(处理中文字休) (4)第三步:输入一个空行(换行)。

以分开标题与表格 (5)第四步:定义基础表格cell,设置边距,解决表格内容垂直居中的问题(因为直接设置垂直居中是没有效的—水平居中有效) (5)第5步:定义基本表格。

定义图片cell。

(生成表格时,从上而下生成。

图片不能最后插入) (5)第6步:多行多列的表格 (5)第7步:插入图片 (6)第7步:插入一个空行(内容为空的表格) (6)完整代码 (7)第一部分iT ext pdf表格生成教程第一步:引用itextsharp.dllusing iTextSharp.text;using System.IO;using iTextSharp.text.pdf;第二步:创建pdf文档的实例//创建一个iTextSharp.text.Document 对象的实例:Document document = new Document();//为该Document 创建一个Writer 实例:PdfWriter.GetInstance(document, newFileStream(@"C:\Users\hechao\Desktop\报名表格.pdf", FileMode.Create));//打开当前Documentdocument.Open();第三步:定义字体,并打印标题.(处理中文字休)/// SIMSUN.TTC:宋体和新宋体//SIMKAI.TTF:楷体//SIMHEI.TTF:黑体//SIMFANG.TTF:仿宋体BaseFont bftitle =BaseFont.CreateFont(@"C:\Windows\Fonts\SIMHEI.TTF",BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font fonttitle = new Font(bftitle, 20);BaseFont bf1 = BaseFont.CreateFont(@"C:\Windows\Fonts\SIMSUN.TTC,1", BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font font1 = new Font(bf1, 12);Font fonttitle10 = new Font(bf1, 12);Paragraph Title = new Paragraph("XXXX比赛", fonttitle);Title.SetAlignment("center");document.Add(Title);第三步:输入一个空行(换行)。

itextpdf html语法

itextpdf html语法

Байду номын сангаасtextpdf html语法
4. 链接和图片: - `<a>`标记用于定义链接,其中`href`属性指定链接的URL。 - `<img>`标记用于插入图片,其中`src`属性指定图片的URL。
5. 表格: - `<table>`标记用于定义表格。 - `<tr>`标记用于定义表格行。 - `<td>`标记用于定义表格单元格。
itextpdf html语法
6. 其他: - `<br>`标记用于插入换行。 - `<hr>`标记用于插入水平线。
请注意,iText对HTML的支持有一些限制和差异,不是所有的HTML标记和样式都能完全 转换为PDF。在使用iText进行HTML到PDF转换时,建议参考iText的官方文档和示例代码, 以了解更多关于HTML语法的详细信息和使用方法。
itextpdf html语法
iText是一个用于生成PDF文档的Java库,它也支持将HTML转换为PDF。在iText中,可以 使用一些HTML标记和语法来定义PDF文档的内容和格式。
以下是一些常见的iText中使用的HTML语法:
1. 标题和段落: - `<h1>`到`<h6>`标记用于定义标题,数字越小,标题级别越高。 - `<p>`标记用于定义段落。
itextpdf html语法
2. 字体和样式: - `<b>`标记用于加粗文本。 - `<i>`标记用于斜体文本。 - `<u>`标记用于下划线文本。 - `<font>`标记用于定义字体颜色、大小和样式。
3. 列表: - `<ul>`标记用于定义无序列表。 - `<ol>`标记用于定义有序列表。 - `<li>`标记用于定义列表项。

itextpdf 填充pdf模板 获取文本高度的方法

itextpdf 填充pdf模板 获取文本高度的方法

itextpdf 填充pdf模板获取文本高度的方法
摘要:
1.ITextPDF 简介
2.填充PDF 模板的方法
3.获取文本高度的方法
4.总结
正文:
1.ITextPDF 简介
iTextPDF 是一个用于操作PDF 文档的Java 库,它提供了丰富的功能,包括创建、编辑、解析和填写PDF 表单等。

在实际应用中,iTextPDF 被广泛用于处理各种PDF 文件,如合同、发票等。

2.填充PDF 模板的方法
在使用iTextPDF 填充PDF 模板时,一般需要遵循以下步骤:
(1)导入iTextPDF 库
(2)创建一个PdfReader 对象,用于读取PDF 模板文件
(3)使用PdfStamper 对象,将读取到的PDF 模板文件进行修改并填充数据
(4)将填充好的PDF 文件保存到本地
3.获取文本高度的方法
在填充PDF 模板时,有时需要获取文本的高度,以便设置文本的间距和排版。

iTextPDF 提供了一种获取文本高度的方法:
(1)创建一个PdfReader 对象,用于读取PDF 文件
(2)使用PdfStamper 对象,将读取到的PDF 文件进行修改
(3)使用PdfContentByte 对象,创建一个文本框并设置文本内容
(4)调用PdfContentByte 对象的getHeight() 方法,获取文本的高度
4.总结
iTextPDF 是一个非常实用的Java 库,它可以帮助我们轻松地操作PDF 文档。

在填充PDF 模板时,我们可以通过创建PdfReader 和PdfStamper 对象,实现对PDF 文件的修改和填充。

iText中Table和PdfTable的区别

iText中Table和PdfTable的区别

iText中Table和PdfTable的区别itext中PdfPtable和Table区别1.iTextSharp.text.Table的Rowspan方法可以合并行,缺点是,每行的高度是根据内容自动调整的.2.PdfPTable的MinimumHeight方法可以设置行的高度,但是不能合并行.3.现在的问题是既要能合并行,又要能设置行的高度.PdfPTable的PdfPCell有个方法disableBorderSide(1);disableBorderSide();方法有一个参数,有四个值1,2,4,8 分别对应每行的上,下,左,右四个边框.PdfPTable每行的四个边框默认是显示的.要想隐藏上边框,disableBorderSide();方法的参数设置为1就行了.这样就PdfPTable就可以变相地实现合并行.唯一不足的是合并行里面的内容要动态实现就不好调整了.例子1:(PdfPtable的用法)String option2= "1,选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目选择题测试题目";Paragraph options2 = new Paragraph(option2,new Font(bfChinese, 12));options1.setAlignment(Element.ALIGN_LEFT);doc.add(options2);PdfPTable table1 = new PdfPTable(4);table1.setHorizontalAlignment(Element.ALIGN_MIDDLE);int hws1[] = {15, 30, 15, 30,};table1.setWidths(hws1);table1.setTotalWidth(100);image.scaleAbsolute(100, 100);Phrase content = new Phrase("A 选择题选项测试,加图片的的。

itextpdf中表格中单元格的文字水平垂直居中的设置

itextpdf中表格中单元格的文字水平垂直居中的设置

itextpdf中表格中单元格的⽂字⽔平垂直居中的设置在使⽤itextpdf中,版本是5.5.6,使⽤Doucument⽅式⽣成pdf时,设置单元格中字体的对齐⽅式时,发现⼀些问题,并逐渐找到了解决⽅式。

给我的经验就是:看官⽹的例⼦才能保证代码的效果,多看官⽹。

下⾯是设置的部分代码:PdfPTable table01 = new PdfPTable(3);table01.setHorizontalAlignment(Element.ALIGN_CENTER);//表格整体⽔平居中table01.setTotalWidth(400);PdfPCell cell01 = new PdfPCell();//单元格cell01.setVerticalAlignment(PdfPCell.ALIGN_CENTER);//设置单元格的垂直对齐⽅式cell01.setHorizontalAlignment(Element.ALIGN_RIGHT);//设置单元格的⽔平对齐⽅式Paragraph p01 = new Paragraph("⼀个我嘻嘻嘻", headFont);//新建段落cell01.addElement(p01);table01.addCell(cell01);其中:cell01.setVerticalAlignment(PdfPCell.ALIGN_CENTER);//设置单元格的垂直对齐⽅式cell01.setHorizontalAlignment(Element.ALIGN_RIGHT);//设置单元格的⽔平对齐⽅式这两⾏代码是不起作⽤的。

解决⽅法:1、按照itextpdf的代码书写⽅式直接在new pdfPCell的时候添加Phrase、Paragraph、chunkPdfPCell cell01 = new PdfPCell(new Phrase("哈哈哈哈哈",textFont));//单元格cell01.setVerticalAlignment(PdfPCell.ALIGN_MIDDLE);//设置单元格的垂直对齐⽅式cell01.setHorizontalAlignment(Element.ALIGN_CENTER);//设置单元格的⽔平对齐⽅式2、使⽤Paragraph的⽔平居中功能,并⽤PdfPCell的setPadding,设置上下padding。

Itext操作PDF

Itext操作PDF
3.在项目中什么时候使用itext?
一般情况下, itext的使用是在以下一个或者多个要求的项目中使用: 1. 内容不固定无法提前利用,它是基于用户的输入或实时数据库信息计算 2. 由于内容,页面过多, PDF文档不能手动生成。 3. 文档需在无人参与,批处理模式下自动创建 4. 内容需要自定义或个性化,如:客户的名字需要打印到某一页
section.setBookmarkTitle("第一层");//设置节的名称 section.setIndentation(30); //设置节缩进的距离 section.setBookmarkOpen(true); //设置书签是打开还是关闭,默认是关闭 section.setNumberStyle( //设置书签号码的样式 Section.NUMBERSTYLE_DOTTED); Section subsection = section.addSection(new Paragraph("第一层",f6)); //添加小节 subsection.setIndentationLeft(20); //设置小节的缩进 subsection.setNumberDepth(1); //设置号码深度 document.add(chapter); //添加章
4.用itext生成PDF文档的步骤
建 立 Document对 象 的 实 例 建立书写器( Writer)与 document对像进行关联,通过书写器可以将文档写入到磁盘中
打开文档 向文本中添加内容 关闭文档
通 过 itext创 建 一 个 简 单 的 PDF文 档 的 详 细 步 骤 : 官 网 地 址 : /projects/itext/files/ 1.导入jar包,通过build Path生成Migrate JAR File

itextPDF使用笔记

itextPDF使用笔记

itextPDF使⽤笔记最近在做报表打印,使⽤的是itextPDF,第⼀次⽤到它,简单做个笔记。

主要涉及到字体设置,⽂字处理操作,表格及单元格设置,绘制⼀些图形IText中有三个处理text的类com.lowagie.text.Chunk,com.lowagie.text.Phrase,com.lowagie.text.Paragraph。

document.setPageSize(PageSize.A4.rotate());// A4横向打印document.newPage(); //另起⼀页⾯document.add(new Paragraph(" ", CUtility.getSun(4)));//间接到达换⾏效果关于表格宽度,单元格宽度的设置PDF画表格,确定表格每⼀列的宽度和表格总宽度// 中间表格部分for (int i = 0; i < 7; i++) {document.add(new Paragraph(" ", CUtility.getSun(10))); //Cutility为我操作PDF的⼀个⼯具类 }float[] widths = { 70, 95, 55, 95, 55, 90 };// 460PdfPTable table = new PdfPTable(widths); //确定每⼀列的宽度table.setLockedWidth(true); //锁定表格宽度 int tableWidth = 0;for (int i = 0; i < widths.length; i++)tableWidth += widths[i];table.setTotalWidth(tableWidth); //设定表格总宽度table.setHorizontalAlignment(Element.ALIGN_CENTER); //设置表格内的内容⽔平居中详细内容添加完之后想在表格下⾯接着画⼀个宽度⼀样的表格等分成三列table = new PdfPTable(3);//设置⼀个三列的表格,均分table.setTotalWidth(765);//设置表格总宽度//不想均分也可以对每列进⾏设置table.setTotalWidth(new float[] { 200, 300, 265 });//或者:table.setTotalWidth(765);table.setWidth(new int[]{200,300,265});table.setLockedWidth(true);//设置锁定表格宽度关于表格单元格常⽤APIPdfPCell pdfCell = new PdfPCell(); // 表格的单元格pdfCell.setMinimumHeight(rowHeight);// 设置表格⾏⾼pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);//⽔平居中pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中pdfCell.setRowspan(2);//合并2⾏pdfCell.setColspan(2);//合并2列pdfCell.setMinimumHeight(70);//设置最⼩⾼度pdfCell.setBackgroundColor(BaseColor.ORANGE);//设置背景颜⾊pdfCell.setBorder(Rectangle.NO_BORDER);//设置⽆边框pdfCell.setBorder(0);//设置⽆边框如何给⽂字加下划线:Chunk chunk = new Chunk(" " + num_1 + " ");chunk.setUnderline(0.1f, -2f);// 下划线paragraph = new Paragraph("\r\n 以上共计 ", CUtility.getKai());paragraph.add(chunk);操作itextPDF的⼯具类package mon;import java.text.NumberFormat;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Collections;import java.util.Date;import java.util.UUID;import com.itextpdf.text.Element;import com.itextpdf.text.Font;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.BaseFont;import com.itextpdf.text.pdf.PdfPCell;public class CUtility {private static final char[] numArray = { '零', '⼀', '⼆', '三', '四', '五', '六', '七', '⼋', '九' };private static final int fontSize = 12;public static final int UNIT_STEP = 4; // 单位进位,中⽂默认为4位即(万、亿)public static final String[] CN_UNITS = new String[] { "个", "拾", "佰", "仟", "万", "拾", "佰", "仟", "亿", "拾", "佰", "仟", "万" }; public static final String[] CN_CHARS = new String[] { "零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖" };/*** 将阿拉伯数字转换为中⽂数字123=》⼀⼆三** @param srcNum* @return*/public static String getCNNum(int srcNum) {String desCNNum = "";if (srcNum <= 0)desCNNum = "零";else {int singleDigit;while (srcNum > 0) {singleDigit = srcNum % 10;desCNNum = String.valueOf(numArray[singleDigit]) + desCNNum;srcNum /= 10;}}return desCNNum;}/*** 将⽇期转化为上中下旬** @param inDate* @return*/public static String get10DayClass(String inDate) {String returnCode = "⽉下旬";Calendar cal = Calendar.getInstance();try {cal.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(inDate));} catch (ParseException e) {e.printStackTrace();}int day = cal.get(Calendar.DATE);if (day < 11)returnCode = "⽉上旬";else if (day < 21)returnCode = "⽉中旬";returnCode = cal.get(Calendar.YEAR) + "年" + String.valueOf(cal.get(Calendar.MONTH) + 1) + returnCode;return returnCode;}/*** 格式化KindEditor中输⼊的字符串,进⾏显⽰和输出** @param content* @return*/public static String formatEditorStr(String c8) {c8 = c8.replaceAll(" ", "");c8 = c8.replaceAll("\r", "");c8 = c8.replaceAll("\n", "");c8 = c8.replaceAll("<p>", "");c8 = c8.replaceAll("</p>", "");c8 = c8.replaceAll("<br/>", "\r\n");return c8;}/*** 打印中的楷体** @return* @throws Exception*/public static Font getKai() throws Exception {return getKai(fontSize, Font.NORMAL);public static Font getKai(int fontSize) throws Exception {return getKai(fontSize, Font.NORMAL);}public static Font getKai(int fSize, int fonStyle) throws Exception {fSize = fSize > 0 ? fSize : fontSize;return getFont(fSize, fonStyle, "simkai.ttf");}/*** 打印中的⿊体** @return* @throws Exception*/public static Font getHei() throws Exception {return getHei(fontSize, Font.NORMAL);}public static Font getHei(int fontSize) throws Exception {return getHei(fontSize, Font.NORMAL);}public static Font getHei(int fSize, int fonStyle) throws Exception {fSize = fSize > 0 ? fSize : fontSize;return getFont(fSize, fonStyle, "simhei.ttf");}/*** 打印中的宋体** @return* @throws Exception*/public static Font getSun() throws Exception {return getSun(fontSize, Font.NORMAL);}public static Font getSun(int fontSize) throws Exception {return getSun(fontSize, Font.NORMAL);}public static Font getSun(int fSize, int fonStyle) throws Exception {fSize = fSize > 0 ? fSize : fontSize;return getFont(fSize, fonStyle, "simsun.ttc,1");}/*** 打印中的word字体** @return* @throws Exception*/public static Font getWSun() throws Exception {return getWSun(fontSize, Font.NORMAL);}public static Font geWSun(int fontSize) throws Exception {return getWSun(fontSize, Font.NORMAL);}public static Font getWSun(int fSize, int fonStyle) throws Exception {fSize = fSize > 0 ? fSize : fontSize;return getFont(fSize, fonStyle, "WINGDNG2.ttf");}private static Font getFont(int fontSize, int fonStyle, String fontName) throws Exception {BaseFont bfChinese = BaseFont.createFont(ServerInfo.getInstance().getFontPath() + fontName, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);Font fontChinese = new Font(bfChinese, fontSize, fonStyle);return fontChinese;}/*** 打印时需要的Cel** @param content* @param font* @return*/public static PdfPCell getCell(String content, Font font) {}public static PdfPCell getCell(String content, Font font, int rowsSpan, int colsSpan) {return getCell(content, font, rowsSpan, colsSpan, 30);}public static PdfPCell getCell(String content, Font font, int rowsSpan, int colsSpan, int rowHeight) { PdfPCell pdfCell = new PdfPCell(); // 表格的单元格pdfCell.setMinimumHeight(rowHeight);// 设置表格⾏⾼pdfCell.setHorizontalAlignment(Element.ALIGN_CENTER);pdfCell.setVerticalAlignment(Element.ALIGN_MIDDLE);if (rowsSpan > 1)pdfCell.setRowspan(rowsSpan);if (colsSpan > 1)pdfCell.setColspan(colsSpan);pdfCell.setPhrase(new Paragraph(content, font));return pdfCell;}/*** 格式化输出为Span标签** @param title* @param value* @param type* @return*/public static String setBadge(String title, String value, int type) {String returnCode = " <span class='layui-badge";switch (type) {case 0:returnCode += "'>";break;// ⾚case 1:returnCode += " layui-bg-orange'>";break;// 橙case 2:returnCode += " layui-bg-green'>";break;// 绿case 3:returnCode += " layui-bg-cyan'>";break;// 青case 4:returnCode += " layui-bg-blue'>";break;// 蓝}returnCode += "" + title + "" + value + "</span> ";return returnCode;}/*** 获取本地中⽂货币显⽰样式** @param currency* @return*/public static String getLocalCurrency(String currency) {double currcencyNum = 0;try {currcencyNum = Double.parseDouble(currency);} catch (Exception e) {}return getLocalCurrency(currcencyNum);}public static String getLocalCurrency(double currency) {NumberFormat numberFormat = NumberFormat.getNumberInstance();return "¥ " + numberFormat.format(currency);}/*** 获取系统当前时间** @return*/public static String genCD() {return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());}/*** 获取系统唯⼀码* @return*/public static String genUUID() {return UUID.randomUUID().toString().toUpperCase().replaceAll("-", "");}/*** 数值转换为中⽂字符串(⼝语化)* @param isColloquial* 是否⼝语化。

iText制作pdf攻略

iText制作pdf攻略

用C#制作PDF文件全攻略丽水市汽车运输集团有限公司信息中心苟安廷目录前言 (3)第一部分 iText的简单应用 (4)第一章创建一个Document (4)第一步创建一个Document实例: (5)第二步创建Writer实例 (6)第三步打开Document (6)第四步添加内容 (10)第五步,关闭 document (11)第二章块、短句和段落 (11)块 (11)短句 (12)段落 (12)字体的延续 (13)第三章锚点、列表和注释 (14)锚点 (14)列表 (15)注释 (15)第四章页眉页脚、章节、区域和绘图对象 (16)页眉页脚 (16)章节和区域 (17)图形 (17)第五章表格 (18)一些简单的表格 (18)一些表格参数 (18)大表格 (20)内存管理 (20)嵌套表格 (21)表格偏移 (21)表格的绝对位置 (21)第六章图片 (21)Image对象 (21)图片的位置 (22)缩放和旋转图片 (23)原始图片数据 (23)System.Drawing.Bitmap (23)TIFF和CCITT (24)图片和其他对象 (24)第二部分其他文档格式 (25)第七章 XML和 (X)HTML (25)第八章 RTF文件 (25)RTF包 (25)创建一个RTF文档 (25)不支持的特性 (26)RTF中扩展的页眉和页脚 (26)第三部分 iText的高级应用 (27)第九章字体 (27)TrueType字体应用 (27)TruType字体集合的应用 (28)第十章图象和文本的绝对位置 (28)pdfContentByte (28)简单图形 (29)文本 (29)模板(Form xObjects) (30)分栏 (31)PdfTable (32)颜色(SpotColors)和图案(Patterns) (33)第十一章本地和异地转向、目标和概要 (33)本地转向 (33)异地转向 (33)第十二章页面和表格事件 (34)前言PDF文件是目前比较流行的电子文档格式,在办公自动化(OA)等软件的开发中,经常要用到该格式,但介绍如何制作PDF格式文件的资料非常少,在网上搜来搜去,都转贴的是同一段“暴力”破解的方法,代码片断如下:StreamWriter pPDF=new StreamWriter(filePath);ArrayList xRefs=new ArrayList();float yPos =0f;long streamStart=0;long streamEnd=0;long streamLen =0;string strPDFMessage=null;//PDF文档头信息strPDFMessage="%PDF-1.1\n";ConvertToByteAndAddtoStream(strPDFMessage);xRefs.Add(mPDF.Length);strPDFMessage="1 0 obj\n";ConvertToByteAndAddtoStream(strPDFMessage);strPDFMessage="<< /Length 2 0 R >>\n";ConvertToByteAndAddtoStream(strPDFMessage);strPDFMessage="stream\n";ConvertToByteAndAddtoStream(strPDFMessage);……看了上面的制作办法,我眼镜都摔坏了三幅,如果用上面这样原始的办法能制作出满意的PDF文件,那一定是天才所为。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

竭诚为您提供优质文档/双击可除itext,pdf,表格,居中篇一:葵花宝典之itext表格itext学习2--表格(20xx-02-0111:26:08)转载标签:分类:othersitext表格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("headerwithco lspan3"));//定义一个表格单元的跨度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,butforsom especificneeds,youcanalsouseoneofthealternativesfor pdfptable.ifyouhaveaswingapplicationwithjtables,you canlookatthejtable2pdfsection.pdfptableonlyworksfor generatingpdF.ifyouneedtogeneratehtmlorRtF,youneedt he(nolongersupported)tableobject.上面这句话来之---itext的tutorial,你应该明白了吧。

ifyouaddapdfptablewithdocument.add(),thedefaultwidt hofthetableis80percentoftheavailablespaceandthetabl eisalignedinthecenter.youcanchangethesedefaultswith setwidthpercentageandsethorizontalalignment.下面就讲一个可以自己定义表格宽度和对齐方式的例子: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)throwsdocumentexc eption,ioexception{//定义中文字体baseFontbfchinese=baseFont.createFont("stsong-light ","unigb-ucs2-h",baseFont.not_embedded);com.lowagie.text.Fontfontcn=newcom.lowagie.text.Fon t(bfchinese,12,com.lowagie.text.Font.noRmal);篇二:利用itext生成复杂pdf利用itext生成复杂pdf内容包括:复杂表格的生成(单元格合并,边框,位置布局,背景色)页脚输出,中文字体输出划直线下载包itext-5.0.3.jarimportjava.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,documentdo cument){//columntext.showtextaligned(pdfwriter.getdirectcontent(),//element.align_centeR,newphrase(string.format("pag e%d",//设置页码//pdfwriter.getpagenumber())),300,50,0);//}publicstaticvoidmain(string[]args)throwsdocumentexc eption,malformeduRlexception,ioexception{//1、实例化文档对象documentdocument=newdocument(pagesize.a4,37,30,50,4 0);//2、创建pdfwriter对象(其他编写器包括htmlwriter、Rtfwriter、xmlwriter)pdfwriterwriter=pdfwriter.getinstance(doc ument,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=newlineseparator(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.getdirectconten t(),//element.align_centeR,newphrase(string.format("pag e%d",//writer.getpagenumber())),300,50,0);//document.newpage();pdfptablet=newpdfptable(2);//创建表格t.setwidthpercentage(100);//百分比t.setspacingbefore(20);//表格元素1imageimage1=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,Firstavenu e",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);//表格元素2imageimage2=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]=newpa ragraph("atime2changet/aVoip.pt",font2);parr[7]=new paragraph("Ruaconsiglieripedroso,123(iberfar)",font 2);parr[8]=newparagraph("edificioh",font2);pdfpcell c3=newpdfpcell();c3.addelement(newparagraph(""));fo r(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);。

相关文档
最新文档