官网: http://itextsupport.com/apidocs/itext5/latest/
博文: https://blog.csdn.net/u010154380/article/details/78087663
博文: https://blog.csdn.net/u013129932/article/details/43889705
iText是著名的开放源码的站点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文件,如下:
packagecom.hd.pdfimportjava.io.FileNotFoundExceptionimportjava.io.FileOutputStreamimportcom.itextpdf.text.Documentimportcom.itextpdf.text.DocumentExceptionimportcom.itextpdf.text.Paragraphimportcom.itextpdf.text.pdf.PdfWriterpublicclassTestPDFDemo1{publicstaticvoidmain(String[]args)throws FileNotFoundException,DocumentException{// 1.新建document对象Document document=newDocument()// 2.建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。// 创建 PdfWriter 对象 第一个参数是对文档对象的引用,第二个参数是文件的实际名称,在该名称中还会给出其输出路径。PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test.pdf"))// 3.打开文档document.open()// 4.添加一个内容段落document.add(newParagraph("Hello World!"))// 5.关闭文档document.close()}}
打开文件
851491-20161209165247147-746087588.png
PDF中创建表格
publicstaticvoidmain(String[]args)throws DocumentException,FileNotFoundException{//创建文件Document document=newDocument()//建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test4.pdf"))//打开文件document.open()//添加内容document.add(newParagraph("HD content here"))// 3列的表.PdfPTable table=newPdfPTable(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[]=newPdfPCell[3]PdfPRow row1=newPdfPRow(cells1)//单元格cells1[0]=newPdfPCell(newParagraph("111"))//单元格内容cells1[0].setBorderColor(BaseColor.BLUE)//边框验证cells1[0].setPaddingLeft(20)//左填充20cells1[0].setHorizontalAlignment(Element.ALIGN_CENTER)//水平居中cells1[0].setVerticalAlignment(Element.ALIGN_MIDDLE)//垂直居中cells1[1]=newPdfPCell(newParagraph("222"))cells1[2]=newPdfPCell(newParagraph("333"))//行2PdfPCell cells2[]=newPdfPCell[3]PdfPRow row2=newPdfPRow(cells2)cells2[0]=newPdfPCell(newParagraph("444"))//把第一行添加到集合listRow.add(row1)listRow.add(row2)//把表格添加到文件中document.add(table)//关闭文档document.close()//关闭书写器writer.close()}
打开图片
851491-20161209165247147-746087588.png
给PDF文件设置文件属性,例如:
publicstaticvoidmain(String[]args)throws FileNotFoundException,DocumentException{//创建文件Document document=newDocument()//建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test2.pdf"))//打开文件document.open()//添加内容document.add(newParagraph("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()}
打开文件
851491-20161209165247147-746087588.png
PDF中添加图片
publicstaticvoidmain(String[]args)throws DocumentException,IOException{//创建文件Document document=newDocument()//建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test3.pdf"))//打开文件document.open()//添加内容document.add(newParagraph("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(newURL("http://static.cnblogs.com/images/adminlogo.gif"))//将图片2添加到pdf文件中document.add(image2)//关闭文档document.close()//关闭书写器writer.close()}
打开图片
851491-20161209165247147-746087588.png
PDF中创建列表
publicstaticvoidmain(String[]args)throws DocumentException,FileNotFoundException{//创建文件Document document=newDocument()//建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test5.pdf"))//打开文件document.open()//添加内容document.add(newParagraph("HD content here"))//添加有序列表List orderedList=newList(List.ORDERED)orderedList.add(newListItem("Item one"))orderedList.add(newListItem("Item two"))orderedList.add(newListItem("Item three"))document.add(orderedList)//关闭文档document.close()//关闭书写器writer.close()}
打开文件
851491-20161209180029726-1168732515.png
PDF中设置样式/格式化输出,输出中文内容,必须引入itext-asian.jar
publicstaticvoidmain(String[]args)throws DocumentException,IOException{//创建文件Document document=newDocument()//建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test6.pdf"))//打开文件document.open()//中文字体,解决中文不能显示问题BaseFont bfChinese=BaseFont.createFont("STSong-Light","UniGB-UCS2-H",BaseFont.NOT_EMBEDDED)//蓝色字体Font blueFont=newFont(bfChinese)blueFont.setColor(BaseColor.BLUE)//段落文本Paragraph paragraphBlue=newParagraph("paragraphOne blue front",blueFont)document.add(paragraphBlue)//绿色字体Font greenFont=newFont(bfChinese)greenFont.setColor(BaseColor.GREEN)//创建章节Paragraph chapterTitle=newParagraph("段落标题xxxx",greenFont)Chapter chapter1=newChapter(chapterTitle,1)chapter1.setNumberDepth(0)Paragraph sectionTitle=newParagraph("部分标题",greenFont)Section section1=chapter1.addSection(sectionTitle)Paragraph sectionContent=newParagraph("部分内容",blueFont)section1.add(sectionContent)//将章节添加到文章中document.add(chapter1)//关闭文档document.close()//关闭书写器writer.close()}
打开图片
![
851491-20161209180029726-1168732515.png
]
851491-20161209165247147-746087588.png
给PDF文件设置密码,需要引入bcprov-jdk15on.jar包:
publicstaticvoidmain(String[]args)throws DocumentException,IOException{// 创建文件Document document=newDocument()// 建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("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(newParagraph("password !!!!"))// 关闭文档document.close()// 关闭书写器writer.close()}
打开图片
851491-20161209165247147-746087588.png
给PDF文件设置权限
publicstaticvoidmain(String[]args)throws DocumentException,IOException{// 创建文件Document document=newDocument()// 建立一个书写器PdfWriter writer=PdfWriter.getInstance(document,newFileOutputStream("C:/Users/H__D/Desktop/test9.pdf"))// 只读权限writer.setEncryption("".getBytes(),"".getBytes(),PdfWriter.ALLOW_PRINTING,PdfWriter.ENCRYPTION_AES_128)// 打开文件document.open()// 添加内容document.add(newParagraph("password !!!!"))// 关闭文档document.close()// 关闭书写器writer.close()}
读取/修改已有的PDF文件
publicstaticvoidmain(String[]args)throwsDocumentException,IOException{//读取pdf文件PdfReaderpdfReader=newPdfReader("C:/Users/H__D/Desktop/test1.pdf")//修改器PdfStamperpdfStamper=newPdfStamper(pdfReader,newFileOutputStream("C:/Users/H__D/Desktop/test10.pdf"))Imageimage=Image.getInstance("C:/Users/H__D/Desktop/IMG_0109.JPG")image.scaleAbsolute(50,50)image.setAbsolutePosition(0,700)for(inti=1i<=pdfReader.getNumberOfPages()i++){PdfContentBytecontent=pdfStamper.getUnderContent(i)content.addImage(image)}pdfStamper.close()}
itext 生成 PDF(二)
链接:https://www.jianshu.com/p/20d4905383b4
据我所知,CorelDraw9主要处理的是图像文件。要想把WORD文件转换成图像文件,必须安装一个叫AdobeAcorbat的文件。你安装的是AdobeAcorbatReader文件,这个文件只能读取PDF文件,不能对PDF文件做任何的编辑。要把WORD文件转换成很好的图像文件的程序是这样的:
1、先安装一个AdobeAcorbat简体中文版。目前最新的是7.0的版本;
2、利用这个软件安装后自带的AdobePDFWriter或AdobeDistiller虚拟打印机把你的WORD文件打印成PDF文件。
3、在AdobeAcorbat中(而不是Reader)打开这个PDF文件,用另存为选项,把PDF文件另存为各种质量的JPEG文件。
4、你还可以利用windows自带的画图程序把JPEG另存为GIF,BMP等图片文件格式。
谢谢!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)