利用itext生成pdf的简单例子

摘要:
IText不仅可以生成PDF或rtf文档,还可以将XML和Html文件转换为PDF文件。iText安装非常方便http://www.lowagie.com/iText/download.html下载iText后。jar文件,您只需要添加iText的路径。jar,然后可以在程序中使用iText类库。据称,本博客中使用的iText版本为7.0.2。

一、itext简介

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

iText的安装非常方便,在http://www.lowagie.com/iText/download.html网站上下载iText.jar文件后,只需要在系统的CLASSPATH中加入iText.jar的路径,在程序中就可以使用iText类库了

声明:本博客用到iText版本为7.0.2版本。

二 、生成简单的pdf文件

1.先生成一个文档的文件

//其中fileName为所要创建pdf文件的路径。

public static OutputStream createFile(String fileName) {

File file = new File(fileName);

//创建一个文件之前判断他的父路径的文件夹是否存在,不存在需要创建

if (!new File(file.getParent()).exists())

new File(file.getParent()).mkdirs();

try {

//创建该文件夹
file.createNewFile();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}

//获取所要创建pdf的文件的输出流

OutputStream os = null;
try {
os = new FileOutputStream(file);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return os;

}

2.创建一个document的文档对象.

 2.1 

②建立一个书写器(Writer)与document对象关联,通过书写器(Writer)可以将文档写入到磁盘中。  

  PdfWriter pdfWriter=new PdfWriter(createFile("你所要创建的pdf文件路径"));

2.2创建pdfDocument的对象与Writer的对象关联

  PdfDocument pdfDocument = new PdfDocument(pdfWriter);

2.3设定创建pdf的纸张大小

  PageSize pageSize = PageSize.A4;

2.4创建Document的对象

  Document document = new Document(pdfDocument, pageSize);

三、添加内容

// 设定标题居中显示

float w = pageSize.getWidth() - document.getLeftMargin() - document.getRightMargin();
List<TabStop> tabstops = new ArrayList();
tabstops.add(new TabStop(w / 2, TabAlignment.CENTER));
tabstops.add(new TabStop(w, TabAlignment.LEFT));

// 段落
Paragraph p = new Paragraph();
p.addTabStops(tabstops);
p.add(new Tab()).add("Text in the middle").add(new Tab());
p.add(new Tab()).add("How To Create An PDF File?").add(new Tab());

document.add(p);

document.flush();

//关闭document

document.close();

三、对中文的处理

1.对于中文的处理需要我添加一个itext-asian-5.2.0.jar包,可以对中文进行处理。而你可能下载不能是这个版本,可能会引起错误的。

一下是对之前版本的处理:

假如你加入的iTextAsian.jar的版本为5.0.6;会 出现异常 Font 'STSong-Light' with 'UniGB-UCS2-H'

  我使用的是iText 5.0.6 加入了iTextAsian.jar就报错.

  com.itextpdf.text.DocumentException: Font 'STSongStd-Light' with 'UniGB-UCS2-H' is not recognized.

  参考博客:x

  找的原因和解决方法:

  原因:iText5以上就改了命名空间了.是 com/itextpdf/text/pdf/fonts/

  但是iTextAsian还没有改.他的命名空间是 com/lowagie /text/pdf/fonts/

  所以报错..

  解决方法.:

  1.用winrar解压iTextAsian.jar

  2. 将com文件夹下面的lowagie 修改为itextpdf .

  3.进入cmd . 切换到iTextAsian目录.

  4.执行命令 jar cvf iTextAsian.jar com/itextpdf/text/pdf/fonts/*

  5.将生成的iTextAsian.jar文件替换原来的.

  问题解决.

 //解决中文的代码:

PdfFont font = null;
try {
font = PdfFontFactory.createFont("STSong-Light", "UniGB-UCS2-H", false);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

然后在段落中设定pdf字体

// 段落
Paragraph p = new Paragraph();
p.setFont(font);
p.addTabStops(tabstops);
p.add(new Tab()).add("我们很好的快来的").add(new Tab());
p.add("您好!");

免责声明:文章转载自《利用itext生成pdf的简单例子》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇用C代码简要模拟实现一下RPC(远程过程调用)并谈谈它在代码调测中的重要应用【转】LinQ 入门系列 [OfType,ToArray,ToList,ToDictionary]下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

wkhtmltopdf 缩放问题

最近客户要精确pdf打印。wkhtmltopdf  html转pdf 始终页面有缩放;解决这个问题绕了很多弯路花了2天,这个问题一定要记录下:--disable-smart-shrinking   这个参数一定要加上,加上页面就不缩小了;--dpi 这个参数不要用默认值,要设置大一点;letter-spacinng : 0  不然字间距太密; wkhtml...

复制pdf文字出来是乱码的一种可能的解决方案

最近在处理一个pdf文件,是一个地图文件,上面带各种文字的标注,地图比较大,而且文字信息比较多而且分散。因为字体的问题,在我的windows电脑上虽然可以正常显示,但是复制出来的文字都是方块,而且对应的文字也不能搜索。 如果不能搜索,也不能复制文字,那么后续的处理会非常棘手。通过不懈的google和尝试,发现了用Adobe Pdf虚拟打印机(别的虚拟打印机...

WPF使用Winform PDFView控件

最近开发wpf项目中有一个模块需要显示PDF文件内容。由于WPF本身没有PDF加载控件(似乎有收费的我查到过类似的资料。如果有新的pdf控件也请通知我一下谢谢)。 项目使用之前也是从网上获取的资料,因此接下来的控件命名和项目命名完全沿用原文档。具体地址忘记了。这样也好感谢原作者。 不过里面的逻辑根据项目实际应用做了变工 。每人理解不同为了大家更快更好地的使...

妙招教你Office Word 2007文档另存为PDF文件[转]

我们大家都知道Microsoft Office Word 2007的文档可以另存为只读的PDF格式文件,但必须预先安装加载插件项。        今天电脑软件技术博客就在这里详细讲解下Microsoft Office Word 2007 文档另存为PDF格式文件的详细步骤: 第一:首先,您肯定得安装上Microsoft Office Office 200...

iOS实现pdf文件预览,上下翻页、缩放,读取pdf目录

最近有个朋友想做一个pdf预览,要求能够上下滑动翻页、带缩放、目录跳转功能。 因为之前我只做过简单的预览,那时直接用uiwebview实现的,这次找了下资料,发现一个比较好的库。 其原理实现: 自定义uiview来显示pdf+使用的是苹果官方的api读取目录+uiscrollview实现缩放及翻页。 不过这个库是左右翻页的,我不是很习惯,就改成了上下滑动翻...

WkHtmlToPdf 生成 PDF

1. 首先去http://wkhtmltopdf.org/downloads.html 下载最新版本的安装包 2. 执行安装完成 3. CMD 命令行运行wkhtmltopdf.exe程序生成PDF C:Program Fileswkhtmltopdfin>wkhtmltopdf.exe --orientation Landscape --javas...