博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
itextpd f生成 pdf 文件
阅读量:6851 次
发布时间:2019-06-26

本文共 4386 字,大约阅读时间需要 14 分钟。

一、简介

  itextpdf 是一个开源的允许你去创建和操作PDF文档的库。它使的开发者可以提高web和其他应用来动态地生成或操作PDF文档。通过iText 中的Document和PdfWriter类,我们可以以数据库、xml文件、或者其他数据源为源头创建PDF文档。有如下三种方式:

  • 使用高级别的对象如Chunk,Phrase,Paragraph,List等待。这些对象通常被称为iText的基本构建块。
  • 使用低级别的功能。使用pdfContentByte,由一系列的类映射到每一个操作符的方法,操作数可以在Adobe的成像模型。这个类也有很多便利的方法来画弧线,圆形、矩形和文本在绝对位置。
  • 使用Java版本的iText的抽象类Graphics2D的实现类PdfGraphics2D(在iTextSharp中不可用)。

iText附带大量的类,支持不同的图像类型,颜色空间、字体、便携式集合。有功能的提高可访问性的PDF文件,以确保PDF是可用的、等等。itextpdf的官网如下:

二、示例

  1、相关依赖如下:

com.itextpdf
itextpdf
5.5.6
jar
com.itextpdf.tool
xmlworker
5.5.6
com.itextpdf
itext-asian
5.2.0

  2、示例

1 package com.test.excel;  2   3 import java.io.FileNotFoundException;  4 import java.io.FileOutputStream;  5 import java.io.IOException;  6   7 import org.junit.Test;  8   9 import com.itextpdf.text.BaseColor; 10 import com.itextpdf.text.Chunk; 11 import com.itextpdf.text.Document; 12 import com.itextpdf.text.DocumentException; 13 import com.itextpdf.text.Element; 14 import com.itextpdf.text.Font; 15 import com.itextpdf.text.PageSize; 16 import com.itextpdf.text.Paragraph; 17 import com.itextpdf.text.Phrase; 18 import com.itextpdf.text.Rectangle; 19 import com.itextpdf.text.pdf.BaseFont; 20 import com.itextpdf.text.pdf.PdfPTable; 21 import com.itextpdf.text.pdf.PdfWriter; 22  23 /** 24  * 创建PDF 25  */ 26 public class PDFCreate { 27  28     /** 29      * 创建PDF 30      */ 31     @Test 32     public void createPDF() { 33         // 页面大小 34         Rectangle rect = new Rectangle(PageSize.B5.rotate()); 35         // 页面背景色 36         rect.setBackgroundColor(BaseColor.WHITE); 37         // 创建一个文档 38         Document document = new Document(rect); 39         try { 40             // 获取PdfWriter实例 41             PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:/test/testPdF.pdf")); 42  43             // PDF版本(默认1.4) 44             writer.setPdfVersion(PdfWriter.PDF_VERSION_1_7); 45  46             // 文档属性 47             document.addTitle("测试文档标题"); 48             document.addAuthor("张三"); 49             document.addSubject("PDF测试"); 50             document.addKeywords("pdf"); 51             document.addCreator("张三"); 52  53             // 页边空白 54             document.setMargins(10, 20, 30, 40); 55  56             // 解决中文支持问题 57             BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); 58             com.itextpdf.text.Font fontChinese = new com.itextpdf.text.Font(bfChinese, 12, com.itextpdf.text.Font.NORMAL); 59  60             // 标题 61             Paragraph toptile = new Paragraph("标题", new Font(bfChinese, 14, Font.NORMAL)); 62             toptile.setAlignment(Paragraph.ALIGN_CENTER); 63             toptile.add(new Paragraph("   ")); 64  65              66             Paragraph pragraph = new Paragraph("这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落", fontChinese); 67             pragraph.setAlignment(Element.ALIGN_LEFT); 68             pragraph.add(new Paragraph("   ")); 69  70          71  72             // 添加表格 73             PdfPTable table = new PdfPTable(4); 74             String content = "你好 : "; 75             for (int i = 0; i < 200; i++) 76                 table.addCell(new Phrase(new Chunk(content + i, fontChinese))); 77  78             // 使用 HttpServletResponse 进行下载 79 //            response.setContentType("application/pdf; charset=UTF-8"); 80 //            response.setHeader("Content-Disposition", "inline; filename=" + new String("test.pdf".getBytes(), "UTF-8")); 81 //            PdfWriter.getInstance(document, response.getOutputStream()); 82              83             // 打开文档 84             document.open(); 85              86             // 添加内容 87             document.add(toptile); 88             document.add(pragraph); 89             document.add(table); 90             // 关闭文档 91             document.close(); 92         } catch (FileNotFoundException e) { 93             e.printStackTrace(); 94         } catch (DocumentException e) { 95             e.printStackTrace(); 96         } catch (IOException e) { 97             e.printStackTrace(); 98         } 99     }100 }

 

转载地址:http://blgul.baihongyu.com/

你可能感兴趣的文章
Spring Boot快速入门(三):依赖注入
查看>>
STL里的算法
查看>>
CAAnimation动画/CAAnimation Group
查看>>
iPhone开发 - 常用库
查看>>
Orchard模块开发全接触1:起步
查看>>
黄聪:ionic使用ion-nav-bar设置了bar-positive类但在安卓Android设备中无法置底
查看>>
[Windows Phone]AnimationHelper管理分散的Storyboard
查看>>
[产品设计]我对移动互联网产品的观点
查看>>
理解和上手Redux
查看>>
安装office2016 64位时提示64位与32位的office程序不兼容,在系统是64位的情况下,由于应用的需要,必须装64位的office,怎么办...
查看>>
6.1指针的概念?
查看>>
格林威治时间(时间戳)转换成标准时间
查看>>
OpenGL中各种坐标系的理解[转]
查看>>
iOS - 正则表达式判断邮箱、身份证..是否正确
查看>>
linux基础—课堂随笔04_文件查找和压缩
查看>>
RegExp(正则表达式)常用知识点小结
查看>>
iOS 上架
查看>>
网络编程之UDP编程
查看>>
Carthage使用
查看>>
dede栏目添加自定义字段方法
查看>>