一、简介
  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的官网如下:

http://www.itextpdf.com/

二、示例
  1、相关依赖如下:

<!-- pdf -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.6</version>
<type>jar</type>
</dependency> <dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.5.6</version>
</dependency>
<!-- 中文支持 -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>

  2、示例

 package com.test.excel;

 import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException; import org.junit.Test; import com.itextpdf.text.BaseColor;
import com.itextpdf.text.Chunk;
import com.itextpdf.text.Document;
import com.itextpdf.text.DocumentException;
import com.itextpdf.text.Element;
import com.itextpdf.text.Font;
import com.itextpdf.text.PageSize;
import com.itextpdf.text.Paragraph;
import com.itextpdf.text.Phrase;
import com.itextpdf.text.Rectangle;
import com.itextpdf.text.pdf.BaseFont;
import com.itextpdf.text.pdf.PdfPTable;
import com.itextpdf.text.pdf.PdfWriter; /**
* 创建PDF
*/
public class PDFCreate { /**
* 创建PDF
*/
@Test
public void createPDF() {
// 页面大小
Rectangle rect = new Rectangle(PageSize.B5.rotate());
// 页面背景色
rect.setBackgroundColor(BaseColor.WHITE);
// 创建一个文档
Document document = new Document(rect);
try {
// 获取PdfWriter实例
PdfWriter writer = PdfWriter.getInstance(document, new FileOutputStream("c:/test/testPdF.pdf")); // PDF版本(默认1.4)
writer.setPdfVersion(PdfWriter.PDF_VERSION_1_7); // 文档属性
document.addTitle("测试文档标题");
document.addAuthor("张三");
document.addSubject("PDF测试");
document.addKeywords("pdf");
document.addCreator("张三"); // 页边空白
document.setMargins(10, 20, 30, 40); // 解决中文支持问题
BaseFont bfChinese = BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
com.itextpdf.text.Font fontChinese = new com.itextpdf.text.Font(bfChinese, 12, com.itextpdf.text.Font.NORMAL); // 标题
Paragraph toptile = new Paragraph("标题", new Font(bfChinese, 14, Font.NORMAL));
toptile.setAlignment(Paragraph.ALIGN_CENTER);
toptile.add(new Paragraph(" ")); Paragraph pragraph = new Paragraph("这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落,这是一个段落", fontChinese);
pragraph.setAlignment(Element.ALIGN_LEFT);
pragraph.add(new Paragraph(" ")); // 添加表格
PdfPTable table = new PdfPTable(4);
String content = "你好 : ";
for (int i = 0; i < 200; i++)
table.addCell(new Phrase(new Chunk(content + i, fontChinese))); // 使用 HttpServletResponse 进行下载
// response.setContentType("application/pdf; charset=UTF-8");
// response.setHeader("Content-Disposition", "inline; filename=" + new String("test.pdf".getBytes(), "UTF-8"));
// PdfWriter.getInstance(document, response.getOutputStream()); // 打开文档
document.open(); // 添加内容
document.add(toptile);
document.add(pragraph);
document.add(table);
// 关闭文档
document.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (DocumentException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

itextpd f生成 pdf 文件的更多相关文章

  1. [轉載]史上最强php生成pdf文件,html转pdf文件方法

    之前有个客户需要把一些html页面生成pdf文件,然后我就找一些用php把html页面围成pdf文件的类.方法是可谓是找了很多很多,什么html2pdf,pdflib,FPDF这些都试过了,但是都没有 ...

  2. 怎么用PHP在HTML中生成PDF文件

    原文:Generate PDF from html using PHP 译文:使用PHP在html中生成PDF 译者:dwqs 利用PHP编码生成PDF文件是一个非常耗时的工作.在早期,开发者使用PH ...

  3. JAVA生成PDF文件

    生成PDF文件是主要应用的是ITEXT插件 import java.awt.Color; import java.io.File; import java.io.FileOutputStream; i ...

  4. 史上最强php生成pdf文件,html转pdf文件方法

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  5. PHP生成PDF文件。

    <?php require_once('TCPDF/tcpdf.php'); //实例化 $pdf = new TCPDF('P', 'mm', 'A4', true, 'UTF-8', fal ...

  6. 在spring boot 中使用itext和itextrender生成pdf文件

    转载请注明出处 https://www.cnblogs.com/majianming/p/9539376.html 项目中需要对订单生成pdf文件,在第一版本其实已经有了比较满意的pdf文档,但是还是 ...

  7. linux下编译bib、tex生成pdf文件

    实验: 在linux环境下,编译(英文)*.bib和*.tex文件,生成pdf文件. 环境: fedora 20(uname -a : Linux localhost.localdomain 3.19 ...

  8. ThinkPHP3.2.3扩展之生成PDF文件(MPDF)

    目前是PHP生成PDF文件最好的插件了,今天介绍下在ThinkPHP3.2.3里如何使用. 先安照路径放好如图. 下面是使用方法 public function pdf(){ //引入类库 Vendo ...

  9. asp.net生成PDF文件 (1)

    asp.net生成PDF文件 (1) 这个是例子是网上淘来的,哈哈,很有用的! 首先要到网上下载itextsharp.dll,然后添加引用,主程序如下: 1 2 3 4 5 6 7 8 9 10 11 ...

随机推荐

  1. [译]WebVR技术方案草案

    注:基于官方的.bs规范专用格式进行了翻译,但结果发现无法编译成html格式,所幸基本兼容.markdown格式. 中文翻译项目地址:https://github.com/web3d/webvr-sp ...

  2. Spark集群 + Akka + Kafka + Scala 开发(1) : 配置开发环境

    目标 配置一个spark standalone集群 + akka + kafka + scala的开发环境. 创建一个基于spark的scala工程,并在spark standalone的集群环境中运 ...

  3. static关键字详解

    首先,要了解一下这些东西的存放位置 堆区: 1.存储的全部是对象,每个对象都包含一个与之对应的class的信息.(class的目的是得到操作指令) 2.jvm只有一个堆区(heap)被所有线程共享,堆 ...

  4. struts原理

    Struts是一个开源的web框架. 为什么会有struts? 因为我们对mvc理解的不同,可能造成不同公司写程序的时候,规范不统一,这样不利于程序的维护和扩展,所以我们有必要用一个统一的规范来开发项 ...

  5. 【问题】js 改变鼠标样式,chrome浏览器不能立即更新,暂没有解决办法

    元素的css,cursor可以改变鼠标样式.也就是鼠标放到元素上去时,改变为相应状态. 通过JS改变cursor时,我发现chrome浏览器不能立即更新,需要动一下鼠标才行,试了几个其它浏览器都是立即 ...

  6. TortoiseSVN使用教程

    一.下载安装文件: 图1.1 安装顺序:1.VisualSVN-Server-2.6.5.msi:2.TortoiseSVN-1.8.2.24708-win32-svn-1.8.3.msi:3.Lan ...

  7. 【ios】使用Block对POST异步操作的简单封装

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3409721.html 一般情况下的POST异步操作需要实现以下 ...

  8. Android 调用已安装市场,进行软件评分的功能实现

    Uri uri = Uri.parse("market://details?id="+getPackageName()); Intent intent = new Intent(I ...

  9. iOS自定义字体

    1.下载字体库,如:DINCond-Bold.otf 2.双击,在mac上安装 3.把下载的字体库拖入工程中: 4.配置info.plist文件 5.xib方式设置自定义字体:Font选Custom, ...

  10. 苹果IPSW文件提取软件

    ipsw文件 提取系统文件 方法总结 由于修改运营商文件造成我的有锁4S无法使用移动卡了,在网上苦寻一番还是没有结果,最后萌生了从固件中提取文件的想法,于是便开始在网上搜集资料,最后文件终于提取成功并 ...