iText组件的使用,基于maven构建项目

2 篇文章 0 订阅
1 篇文章 0 订阅

一、Itext项目简介

iText 是著名的开放源码的站点sourceforge一个项目, 是用于生成 PDF 文档的一个java类库.

官网地址:http://developers.itextpdf.com


二、iText核心类

· kernel io: 包含低层次常用的基础的函数

· layout: 包含高层次的函数

· forms: 有关AcorForms操作需要的函数库

· pdfa: 有关PDF/A(电子文档标准)的相关操作

· pdftest: test例子中所引用的库

 

 除了这些常用的JAR包意外,还有一些其他可能的包:

· barcodes: 当你想要创建bar code条形码)时使用

· hyph: 当你想要文字有连字符时使用

· font-asian: 当你想要用CJK字符时 (Chinese / Japanese / Korean)

· sign: 当你想要使用电子签名使用


三、maven依赖文件pom.xml

 <dependencies>
	  <dependency>
	      <groupId>junit</groupId>
	      <artifactId>junit</artifactId>
	      <version>4.12</version>
	      <scope>test</scope>
	    </dependency>  
    	<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>kernel</artifactId>
			<version>7.0.3</version>
		</dependency>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>io</artifactId>
			<version>7.0.3</version>
		</dependency>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>layout</artifactId>
			<version>7.0.3</version>
		</dependency>
		<dependency>
			<groupId>com.itextpdf</groupId>
			<artifactId>font-asian</artifactId>
			<version>7.0.3</version>
		</dependency>

四、代码

package itext;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;

import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfDocumentInfo;
import com.itextpdf.kernel.pdf.PdfReader;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Paragraph;

/**  作者:darkjazz 
*    日期:2018年3月21日 上午9:23:19
*/
public class Test {
public static void main(String[] args) throws IOException {
	    //1、创建流对象
	    PdfWriter pdfWriter=new PdfWriter(new File("你的pdf文件位置\\1.pdf"));
	    
	    //2、创建文档对象
	    PdfDocument pdfDocument=new PdfDocument(pdfWriter);
	    
	    //3、创建内容文档对象
	    
	    Document document=new Document(pdfDocument);
	    PdfDocumentInfo documentInfo=pdfDocument.getDocumentInfo();
	    documentInfo.setCreator("zzb");
	   
	    //、创建内容
	    Paragraph paragraph=new Paragraph("good morning");
	    
           //设置字体,解决中文显示问题
	    PdfFont font=PdfFontFactory.createFont("STSongStd-Light","UniGB-UCS2-H",true);
	    paragraph.setFont(font);
	    paragraph.setBackgroundColor(Color.LIGHT_GRAY);
	    
	    
	    //将内容写入文档
	    
	    document.add(paragraph);
	    
	    document.close();
	    
	    System.out.println("ok!!!");
	    
	    //读取生成文档的内容
	    PdfReader pdfReader=new PdfReader(new File("\\JavaEE (1).pdf"));
	   
	    System.out.println(pdfReader.toString());
}
}

四、PDF文档相关属性设置

4.1可以通过 Document 的构造器定义 Pdf 文档的大小

Document document = new Document(pdf,PageSize.A4);

 

4.2设定文档属性

在文档打开之前, 可以设定文档的标题、主题、作者、关键字、创建者、生产者等属性,调用的方法分别是:

 PdfDocument pdf = new PdfDocument(writer);      

通过获取pdf文档对象的PdfDocumentInfo 对象来设置文档属性。

@Test
	public void setDocumentInfo() throws FileNotFoundException{
		PdfWriter pdfwrite=new PdfWriter("d:\\pdf\\info.pdf");
		PdfDocument pdfdocument=new PdfDocument(pdfwrite);
		//通过PdfDocument对象获取到PdfDocumentInfo
		PdfDocumentInfo info=pdfdocument.getDocumentInfo();
		//设置文档作者
		info.setAuthor("darkja");
		//设置文档创建人
		info.setCreator("darkjazz");
		//设置文档关键字,多个关键字用,隔开
		info.setKeywords("学习");
		//设置文档主题
		info.setSubject("文档主题");
		//设置文档标题
		info.setTitle("文档标题");
		
		Document doc=new Document(pdfdocument,PageSize.A4);
		doc.add(new Paragraph("document info"));
		doc.close();
		
	}

五、生成带表格和图片的PDF

iText中处理表格的类为:com.itextpdf.layout.element.Table

类的构造函数有四个:

Table(float[] pointColumnWidths)

Table(float[] columnWidths, boolean largeTable)

Table(UnitValue[] columnWidths)

Table(UnitValue[] columnWidths, boolean largeTable)

参数pointColumnWidths columnWidths columnWidths分别为表格的每列宽度占比属性. 创建表格时必须指定表格的每列宽度比。

 

生成单元格对象:

• Cell 类表示单元格.

• Cell headcell=new Cell();//表示创建一个普通的单元格

• Cell headcell=new Cell(1,4);//表示创建一个跨1行4列的单元格

• 可以在单元格添加Paragraph对象

• 通过对Paragraph对象指定字体、位置、颜色

• new Paragraph("Job tile").setTextAlignment(TextAlignment.CENTER).setFont(font).setBold()

• 指定了文字位置、字体、是否加粗


package itext;



import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.net.URL;

import com.itextpdf.io.image.ImageData;
import com.itextpdf.io.image.ImageDataFactory;
import com.itextpdf.kernel.color.Color;
import com.itextpdf.kernel.font.PdfFont;
import com.itextpdf.kernel.font.PdfFontFactory;
import com.itextpdf.kernel.pdf.PdfDocument;
import com.itextpdf.kernel.pdf.PdfWriter;
import com.itextpdf.layout.Document;
import com.itextpdf.layout.element.Cell;
import com.itextpdf.layout.element.Image;
import com.itextpdf.layout.element.Paragraph;
import com.itextpdf.layout.element.Table;
import com.itextpdf.layout.property.TextAlignment;

/**  作者:darkjazz
*    日期:2018年3月21日 上午10:35:47
*/
public class TEST2 {
	public static void main(String[] args) throws IOException {
           //1、创建流对象
	    PdfWriter pdfWriter=new PdfWriter(new File("你的pdf位置\\2.pdf"));
	    
	    //2、创建文档对象
	    PdfDocument pdfDocument=new PdfDocument(pdfWriter);
	    
	    //3、创建内容文档对象
	    
	    Document document=new Document(pdfDocument);
	    
	    
	    
	    PdfFont font=PdfFontFactory.createFont("STSongStd-Light","UniGB-UCS2-H",true);
	    
	    Table table=new Table(new float[]{20,20,20,20});
	    table.setWidthPercent(100);
	    //创建表头
	    Cell head=new Cell(1,4); //一行四列
	    head.add(new Paragraph("JOB TITLE")).setTextAlignment(TextAlignment.CENTER).setBackgroundColor(Color.ORANGE);
	    
	    Cell cell1=new Cell();
	    cell1.add("one");
	    Cell cell2=new Cell();
	    cell2.add("two");
	    Cell cell3=new Cell();
	    cell3.add("three");
	    Cell cell4=new Cell();
	    cell4.add("four");
	    
	    table.addCell(cell1);
	    table.addCell(cell2);
	    table.addCell(cell3);
	    table.addCell(cell4);
	    
	    
	    for (int i = 0; i < 16; i++) {
	    	  Cell cell=new Cell();
			cell.add(new Paragraph(i+" "));
			table.addCell(cell);
		}
	    
	    Cell teshucell=new Cell(2,1);
	    teshucell.setBackgroundColor(Color.GREEN);
	    table.addCell(teshucell);
	    
	    for (int i = 0; i < 6; i++) {
	    	  Cell cell=new Cell();
			cell.add(new Paragraph(i+" ").setBackgroundColor(Color.PINK));
			table.addCell(cell);
		}
	    
	    //加入表格
	    table.addHeaderCell(head);
	    //加入图片
	    Image image=new Image(ImageDataFactory.create("你的图片位置\\2.jpg"));
	    document.add(image);

	    
	    document.add(table);
	    
             document.close();
	    
	    System.out.println("ok!!!");
	    
	    
	}
	  
}
效果如下:


完结、撒花!!!!!!



  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
以下是 iText 7 的所有 Maven 依赖: ``` <!-- Core iText 7 library --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-core</artifactId> <version>7.1.16</version> </dependency> <!-- PDF HTML conversion --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>html2pdf</artifactId> <version>3.0.5</version> </dependency> <!-- PDF SVG conversion --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>svg2pdf</artifactId> <version>3.0.5</version> </dependency> <!-- PDF XMP library --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-xmp</artifactId> <version>7.1.16</version> </dependency> <!-- PDF Forms --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-forms</artifactId> <version>7.1.16</version> </dependency> <!-- PDF Accessibility --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>accessibility</artifactId> <version>3.0.5</version> </dependency> <!-- PDF Layout --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>layout</artifactId> <version>7.1.16</version> </dependency> <!-- PDF barcode creation --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>barcode</artifactId> <version>7.1.16</version> </dependency> <!-- PDF encryption and decryption --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-crypto</artifactId> <version>7.1.16</version> </dependency> <!-- PDF digital signatures --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>sign</artifactId> <version>3.0.5</version> </dependency> <!-- PDF OCR (Optical Character Recognition) --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>ocr</artifactId> <version>3.0.5</version> </dependency> <!-- PDF compare --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext7-compare</artifactId> <version>7.1.16</version> </dependency> <!-- PDF Imposition --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>imposition</artifactId> <version>3.0.5</version> </dependency> <!-- PDF Debug --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>debug</artifactId> <version>3.0.5</version> </dependency> <!-- PDF Tagging --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>tagging</artifactId> <version>3.0.5</version> </dependency> <!-- PDF Redaction --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>redaction</artifactId> <version>3.0.5</version> </dependency> <!-- PDF Color profiles --> <dependency> <groupId>com.itext
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值