Text是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。

项目要使用iText,必须引入jar包。才能使用,maven依赖如下:

 <dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.10</version>
</dependency>

输出中文,还要引入下面itext-asian.jar包:

 <dependency><groupId>com.itextpdf</groupId><artifactId>itext-asian</artifactId><version>5.2.0</version></dependency>

设置pdf文件密码,还要引入下面bcprov-jdk15on.jar包:

<dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk15on</artifactId><version>1.54</version>
</dependency>

iText常用类

  • com.itextpdf.text.Document:这是iText库中最常用的类,它代表了一个pdf实例。如果你需要从零开始生成一个PDF文件,你需要使用这个Document类。首先创建(new)该实例,然后打开(open)它,并添加(add)内容,最后关闭(close)该实例,即可生成一个pdf文件。
  • com.itextpdf.text.Paragraph:表示一个缩进的文本段落,在段落中,你可以设置对齐方式,缩进,段落前后间隔等
  • com.itextpdf.text.Chapter:表示PDF的一个章节,他通过一个Paragraph类型的标题和整形章数创建
  • com.itextpdf.text.Font:这个类包含了所有规范好的字体,包括family of font,大小,样式和颜色,所有这些字体都被声明为静态常量
  • com.itextpdf.text.List:表示一个列表;
  • com.itextpdf.text.Anchor:表示一个锚,类似于HTML页面的链接。
  • com.itextpdf.text.pdf.PdfWriter:当这个PdfWriter被添加到PdfDocument后,所有添加到Document的内容将会写入到与文件或网络关联的输出流中。
  • com.itextpdf.text.pdf.PdfReader:用于读取PDF文件;

iText使用

创建一个简单的pdf文件,如下:

 package com.hd.pdf;import java.io.FileNotFoundException;import java.io.FileOutputStream;import com.itextpdf.text.Document;import com.itextpdf.text.DocumentException;import com.itextpdf.text.Paragraph;import com.itextpdf.text.pdf.PdfWriter;public class TestPDFDemo1 {public static void main(String[] args) throws FileNotFoundException, DocumentException {// 1.新建document对象Document document = new Document();// 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。// 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test.pdf"));// 3.打开文档document.open();// 4.添加一个内容段落document.add(new Paragraph("Hello World!"));// 5.关闭文档document.close();}}

打开文件

PDF中创建表格

 public static void main(String[] args) throws DocumentException, FileNotFoundException {//创建文件Document document = new Document();//建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test4.pdf"));//打开文件document.open();//添加内容document.add(new Paragraph("HD content here"));// 3列的表.PdfPTable table = new PdfPTable(3); table.setWidthPercentage(100); // 宽度100%填充table.setSpacingBefore(10f); // 前间距table.setSpacingAfter(10f); // 后间距List<PdfPRow> listRow = table.getRows();//设置列宽float[] columnWidths = { 1f, 2f, 3f };table.setWidths(columnWidths);//行1PdfPCell cells1[]= new PdfPCell[3];PdfPRow row1 = new PdfPRow(cells1);//单元格cells1[0] = new PdfPCell(new Paragraph("111"));//单元格内容cells1[0].setBorderColor(BaseColor.BLUE);//边框验证cells1[0].setPaddingLeft(20);//左填充20cells1[0].setHorizontalAlignment(Element.ALIGN_CENTER);//水平居中cells1[0].setVerticalAlignment(Element.ALIGN_MIDDLE);//垂直居中cells1[1] = new PdfPCell(new Paragraph("222"));cells1[2] = new PdfPCell(new Paragraph("333"));//行2PdfPCell cells2[]= new PdfPCell[3];PdfPRow row2 = new PdfPRow(cells2);cells2[0] = new PdfPCell(new Paragraph("444"));//把第一行添加到集合listRow.add(row1);listRow.add(row2);//把表格添加到文件中document.add(table);//关闭文档document.close();//关闭书写器writer.close();}

打开图片

给PDF文件设置文件属性,例如:

 public static void main(String[] args) throws FileNotFoundException, DocumentException {//创建文件Document document = new Document();//建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test2.pdf"));//打开文件document.open();//添加内容document.add(new Paragraph("Some content here"));//设置属性//标题document.addTitle("this is a title");//作者document.addAuthor("H__D");//主题document.addSubject("this is subject");//关键字document.addKeywords("Keywords");//创建时间document.addCreationDate();//应用程序document.addCreator("hd.com");//关闭文档document.close();//关闭书写器writer.close();}

打开文件

PDF中添

加图片

 public static void main(String[] args) throws DocumentException, IOException {//创建文件Document document = new Document();//建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test3.pdf"));//打开文件document.open();//添加内容document.add(new Paragraph("HD content here"));//图片1Image image1 = Image.getInstance("C:/Users/H__D/Desktop/IMG_0109.JPG");//设置图片位置的x轴和y周image1.setAbsolutePosition(100f, 550f);//设置图片的宽度和高度image1.scaleAbsolute(200, 200);//将图片1添加到pdf文件中document.add(image1);//图片2Image image2 = Image.getInstance(new URL("http://static.cnblogs.com/images/adminlogo.gif"));//将图片2添加到pdf文件中document.add(image2);//关闭文档document.close();//关闭书写器writer.close();}

打开图片

PDF中创建列表

 public static void main(String[] args) throws DocumentException, FileNotFoundException {//创建文件Document document = new Document();//建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test5.pdf"));//打开文件document.open();//添加内容document.add(new Paragraph("HD content here"));//添加有序列表List orderedList = new List(List.ORDERED);orderedList.add(new ListItem("Item one"));orderedList.add(new ListItem("Item two"));orderedList.add(new ListItem("Item three"));document.add(orderedList);//关闭文档document.close();//关闭书写器writer.close();}

打开文件

PDF中设置样式/格式化输出,输出中文内容,必须引入itext-asian.jar

 public static void main(String[] args) throws DocumentException, IOException {//创建文件Document document = new Document();//建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test6.pdf"));//打开文件document.open();//中文字体,解决中文不能显示问题BaseFont bfChinese = BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED);//蓝色字体Font blueFont = new Font(bfChinese);blueFont.setColor(BaseColor.BLUE);//段落文本Paragraph paragraphBlue = new Paragraph("paragraphOne blue front", blueFont);document.add(paragraphBlue);//绿色字体Font greenFont = new Font(bfChinese);greenFont.setColor(BaseColor.GREEN);//创建章节Paragraph chapterTitle = new Paragraph("段落标题xxxx", greenFont);Chapter chapter1 = new Chapter(chapterTitle, 1);chapter1.setNumberDepth(0);Paragraph sectionTitle = new Paragraph("部分标题", greenFont);Section section1 = chapter1.addSection(sectionTitle);Paragraph sectionContent = new Paragraph("部分内容", blueFont);section1.add(sectionContent);//将章节添加到文章中document.add(chapter1);//关闭文档document.close();//关闭书写器writer.close();}

打开图片

给PDF文件设置密码,需要引入bcprov-jdk15on.jar包:

 public static void main(String[] args) throws DocumentException, IOException {// 创建文件Document document = new Document();// 建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test8.pdf"));//用户密码String userPassword = "123456";//拥有者密码String ownerPassword = "hd";writer.setEncryption(userPassword.getBytes(), ownerPassword.getBytes(), PdfWriter.ALLOW_PRINTING,PdfWriter.ENCRYPTION_AES_128);// 打开文件document.open();//添加内容document.add(new Paragraph("password !!!!"));// 关闭文档document.close();// 关闭书写器writer.close();}

打开图片

给PDF文件设置权限

 public static void main(String[] args) throws DocumentException, IOException {// 创建文件Document document = new Document();// 建立一个书写器PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("C:/Users/H__D/Desktop/test9.pdf"));// 只读权限writer.setEncryption("".getBytes(), "".getBytes(), PdfWriter.ALLOW_PRINTING, PdfWriter.ENCRYPTION_AES_128);// 打开文件document.open();// 添加内容document.add(new Paragraph("password !!!!"));// 关闭文档document.close();// 关闭书写器writer.close();}

读取/修改已有的PDF文件

 public static void main(String[] args) throws DocumentException, IOException {//读取pdf文件PdfReader pdfReader = new PdfReader("C:/Users/H__D/Desktop/test1.pdf");//修改器PdfStamper pdfStamper = new PdfStamper(pdfReader, new FileOutputStream("C:/Users/H__D/Desktop/test10.pdf"));Image image = Image.getInstance("C:/Users/H__D/Desktop/IMG_0109.JPG");image.scaleAbsolute(50, 50);image.setAbsolutePosition(0, 700);for(int i=1; i<= pdfReader.getNumberOfPages(); i++){PdfContentByte content = pdfStamper.getUnderContent(i);content.addImage(image);}pdfStamper.close();}

itext 生成 PDF(一)相关推荐

  1. Java使用itext生成Pdf

    Java使用itext生成Pdf 背景 所需依赖 解决jpedal-lgpl jar包问题 示例代码 生成带图片的PDF(使用本地文件系统图片) 生成带图片的PDF(使用网络图片) 背景 在某些业务场 ...

  2. java 生成pdf itext_使用Java组件itext 生成pdf介绍

    iText是一个能够快速产生PDF文件的Java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给合.使用iText与 ...

  3. java itext 设计器_使用Java组件itext 生成pdf的介绍

    [IT168 技术]iText是一个能够快速产生PDF文件的java类库.iText的java类对于那些要产生包含文本,表格,图形的只读文档是很有用的.它的类库尤其与java Servlet有很好的给 ...

  4. 利用velocity模板以及itext生成pdf

    利用velocity模板以及itext生成pdf 我整理的源码:http://download.csdn.net/download/u012174571/8748897 首先是velocity的使用: ...

  5. java生成pdf加密_java使用iText 生成PDF全攻略(表格,加密)

    java使用iText 生成PDF全攻略,包括创建文档,设置字体,添加表格(PdfPTable),创建新页(newPage),设置布局,加密 主要使用的jar包: itextpdf-5.4.2.jar ...

  6. itext生成pdf间距_使用itext生成pdf

    在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过 在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或下载得到 ...

  7. itext 生成pdf 输出特殊符号_JAVA提取PDF内容及转换PDF为图片

    今天给大家分享一下使用java处理pdf文件,包括提取pdf文本.提取pdf图片.pdf转图片三种操作. 主要使用到的库是apache开源的pdfbox,目前最新版本是2.0.x,网上的资料一般是1. ...

  8. java itext 横线,Java itext生成pdf设置下划线,,package cn.o

    Java itext生成pdf设置下划线,,package cn.opackage cn.outofmemory.example.itextpdf;import com.itextpdf.text.C ...

  9. iText生成pdf中文字体

    用iText生成pdf时,内容有中文的时候用到中文字体. 直接使用iTextAsian.jar中的字体 BaseFont base = BaseFont.createFont("STSong ...

  10. java pdf 首行缩进_java使用iText生成pdf文档的对齐方式

    一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...

最新文章

  1. EXCLE使用中常用函数和公式
  2. 34. 在排序数组中查找元素的第一个和最后一个位置012(二分查找+思路+详解+两种方法)Come Baby!!!!!!!! !
  3. matlab频率阻抗,有分析阻抗的matlab脚本吗?
  4. 怎么多次调用c语言dll,c-如何从注入到同一程序的另一个.dll中调用...
  5. ZooKeeper 集群为啥最好奇数台?
  6. 揭露微信朋友圈当中出现刷票群0.01一票微信号、刷票0.01一票微信号的虚假面目
  7. 深入浅出统计学 笔记 总结 学习心得
  8. 《孤尽班T31-04-工程结构规约》
  9. 如何给pdf添加目录
  10. Ubuntu16.04安装Nvidia显卡驱动与cuda和Cudnn
  11. ajax读取txt出现乱码问题,ajax读取txt文本时乱码的解决方案
  12. 2018.4.3晚_京东实习_后端开发面试记录
  13. 2022年餐饮连锁行业研究报告
  14. stm32之备份寄存器(BKP)应用(侵入检测中断)
  15. android 网络运营商的名字显示规则(锁定屏幕,下拉列表)
  16. 位运算的那些事(三)位掩码
  17. 推荐四款可视化工具,解决99%的可视化大屏需求
  18. VirtualBox如何设置端口转发?
  19. 还心灵一个安静的净土
  20. RobotStudio如何配置自定的义第七轴

热门文章

  1. python123平台第三周作业答案_python123第一周作业
  2. 电子科大+矩阵理论+总复习知识点总结
  3. n1盒子当无线打印服务器,n1下ubuntu安装cups配置airprint网络打印服务器
  4. 如何在电脑上彻底删除Oracle客户端?
  5. Wowza服务器系列(1):介绍
  6. think-cell丨Images图像丨教程
  7. 基于STM32简易计算器
  8. 计算机网络体系结构(详图)
  9. unity5.x游戏开发指南示例下载
  10. 攻防世界——MISC——pdf