如今pdf格式文档的使用已经越来越普遍,它在文档压缩、安全等方面都表现的非常优秀,有关它的好处我就不在这里多说了。那么如何使用java语言开发应用来输出pdf格式的文档呢?在这里给大家介绍itext,它是一个开发源代码的项目,你可以使用itext方便的实现pdf的输出。这篇文章我将向大家介绍如何使用itext来生成pdf文档。

helloworld

作为一个程序开发人员,对于helloworld程序并不陌生,几乎每一种语言或应用开始总是会举一个helloworld的例子来向大家介绍。在开始介绍itext时,我们不妨也从helloworld开始

现在运行上面的代码(记住在这之前把itext.jar放到你的classpath 之中),如果一切正常的话你会在”c:/”看到一个名为hello.pdf的文件。打开这个文件,看到了什么?是的文档里有一行字符“helloworld”,如下图。

怎么样是不是很简单?当然我们在实际应用时不可能只是简单的输出一个字符串就完事了,还要作很多的工作,输出更复杂的pdf,下面就让我们开始进一步了解itext的其他功能。

更复杂的设置

分析一下document的构造方法,我们发现除了我们上一个例子中的无参数构造以外还有两个:

/*

* created on 2004-1-3,创建第一个hello world程序

*/

package test1;

import java.io.filenotfoundexception;

import java.io.fileoutputstream;

import com.lowagie.text.*;

import com.lowagie.text.pdf.*;

public class helloworld {

public static void main(string[] args) {

//创建一个文档对象

document doc=new document();

try {

//定义输出位置并把文档对象装入输出对象中

pdfwriter.getinstance(doc, new fileoutputstream("c:/hello.pdf"));

//打开文档对象

doc.open();

// 加入文字“hello world”

doc.add(new paragraph("helloworld"));

// 关闭文档对象,释放资源

doc.close();

} catch (filenotfoundexception e) {

e.printstacktrace();

} catch (documentexception e) {

e.printstacktrace();

}

}

}

public document();

public document(rectangle pagesize);

public document(rectangle pagesize,

int marginleft,

int marginright,

int margintop,

int marginbottom);

第一个设置文档的页面大小,第二个除了设置文档的页面大小还设置页面边距。下面我分别给出例子。

rectangle psize=new rectangle(144,90);

//文档的背景色

psize.setbackgroundcolor(color.blue);

//创建一个文档对象,并设置他的初始化大小

document doc=new document(psize);

rectangle psize=new rectangle(144,90);

//文档的背景色

psize.setbackgroundcolor(color.blue);

//创建一个文档对象,设置初始化大小和页边距

document doc=new document(psize,5,5,5,5);

将第一个例子中的代码按上面的方法修改然后运行,你可以看到输出的pdf文档将是这个样子,文档变得很小而且背景是蓝色:

在上面的例子中我们通过rectangle设置了文档的大小,其实itext已经为我们定义好了许多常用的页面,比如:a0-a10, legal, letter等等,这些都放在com.lowagie.text.pagesize这个类中,你可以通过调用pagesize中的静态方法直接引用页面信息。比如:

pagesize.a4;

设置字体

使用itext可以设置文字的字体,对于我们中国的程序员来说如何显示中文是最紧要的问题。幸好itext中有一个专门的包用来设置亚洲国家的字体你可以从http://itext.sourceforge.net/downloads/itextasian.jar下载这个包。然后把它直接放到你的classpath中就可以了。如何设置字体呢?

basefont bfchinese = basefont.createfont("stsong-light", "unigb-ucs2-h", basefont.not_embedded);

font fontchinese = new font(bfchinese, 12, font.normal);

在上面的代码中设置了中文字体的显示,你只要使用下面的代码就可以包中文加到pdf中了

string title = "我爱喝咖啡";

paragraph t = new paragraph(title, fontchinese);

doc.add(t);

如果你觉得这样设置很麻烦的话,呵呵,那你要自己扩展它的源代码了,设置字体全部在那个basefont里边。

编辑表格

itext中的表格很像html中表格的使用不过它有一个cell代表一个格子,基本上这里的table和swing中的table对象是一致的,比如上面代码中对于表格的设置:

//定义一个表格

table table = new table(2);

//设置表格边框

table.setborderwidth(1);

cell cell = new cell("matrix iii");

cell.setheader(true);

//分列

cell.setcolspan(2);

cell.setbackgroundcolor(color.blue);

table.addcell(cell);

放置图片

现在你一定知道如何把一个图片加到文档中了,没错只要声明一个image对象就可以了,这里的image和awt中的image使用方法是一样的。

//定义一个图片

image jpeg = image.getinstance("c:/matrix.jpg");

//图片居中

jpeg.setalignment(image.align_center);

结束

有关itext的使用我就大致介绍这些,更深入的东西只有大家参考源代码自己体会了。

java实现jsp转pdf,使用Java生成Pdf文档-JSP教程,Java技巧及代码相关推荐

  1. python新建word文档_使用Python 自动生成 Word 文档的教程

    当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...

  2. python自动生成和读取word_使用Python自动生成Word文档的教程

    当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...

  3. java下freemarker2.3.28+aspose实现生成word文档生成、word转pdf转换

    一.java生成word文档 java生成word文档常用的两种方式: (1)apache下的poi类库处理office文档 (2)freemarker编辑word文件转换的xml文件 通过网上了解, ...

  4. java word 模板_java通过word模板生成word文档

    public static void main(String[] args) { //模板.文件.图片路径 String workPath=System.getProperty("user. ...

  5. java模板变量_java freemarker + word 模板 生成 word 文档 (变量替换,数据的循环,表格数据的循环,以及图片的替换)...

    1,最近有个需求,动态生成 Word 文当并供前端下载,网上找了一下,发现基本都是用 word 生成 xml 然后用模板替换变量的方式 1.1,这种方式虽然可行,但是生成的 xml 是在是太乱了,整理 ...

  6. java 创建word文件_java基于feemarker 生成word文档(超级简单)

    问题由来: 开发个新需求,需要按规定导出word文档,文档截图如下 因为之前没做过这个,一脸懵B啊,导出excel和txt倒是经常接触到,对于这个word这种格式不严谨的文件怎么处理呢? 技术选型:可 ...

  7. vue ueditor 生成word文档_word目录制作技巧:快速生成文档总目录和章节下子目录...

    编按:在使用Word制作长文档时,目录必不可少.有了目录,无论是查找内容或阅读内容都会更方便.但很多人却不得其法,始终采用纯手工输入目录.今天,小编将教大家自动生成主目录和子目录的方法,以后再也不用手 ...

  8. php生成word的类,在Windows系统下使用PHP生成Word文档的教程

    准备工作 首先,请确保在你的Windows系统中已经安装并配置好了一个典型的WAMP环境.由于Interop纯粹是一个Windows的特性,我们将在Windows平台下搭建Apache和PHP.在这个 ...

  9. Javadoc (Java API 文档生成器)详解 [Javadoc 概述][Javadoc 标签][Javadoc 命令][Javadoc 生成 API 文档]

    您的"关注"和"点赞",是认可,是支持,是动力. 如意见相佐,可留言. 本人必将竭尽全力试图做到准确和全面,终其一生进行修改补充更新. 文章目录 1 Javad ...

  10. 计算机毕业设计Java宠物交易平台(源码+系统+mysql数据库+lw文档)

    计算机毕业设计Java宠物交易平台(源码+系统+mysql数据库+lw文档) 计算机毕业设计Java宠物交易平台(源码+系统+mysql数据库+lw文档) 本源码技术栈: 项目架构:B/S架构 开发语 ...

最新文章

  1. 70后、80后、90后程序员区别极端版
  2. 从网上搜索到的虚拟化笔记
  3. 手机游戏繁荣时代,团队的N条死路
  4. php 事件调度,PHP单元测试调度事件
  5. 苹果电脑 html5 视频,苹果Mac系统看HTML5视频教程介绍
  6. Android 应用性能优化(4)---Android App性能评测分析-启动时间篇
  7. 为什么hashtable中桶的数目都是用质数表示
  8. LINUX安装依赖库冲突的最终版本:下列软件包有未满足的依赖关系/但是它将不会被安装/无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系
  9. 深入了解mysql 5.5分区功能增强_深入了解MySQL 5.5分区功能增强
  10. Unity Shader - ShaderLab: Pass Tags Pass的Tags标签
  11. GitHub 上有哪些优秀的 Python 爬虫项目?
  12. 摄影网站主页源码html,2017年最新15个漂亮的 HTML 摄影网站模板
  13. 儿童编程软件python-一款儿童编程入门的理想工具——PythonTurtle
  14. 浅谈游戏商业化(一)
  15. fatal: unable to access ‘https://github.com/thm123/algos.git/‘: Received HTTP code 400 from proxy af
  16. 智慧灯杆系统设计架构简介
  17. 计算机专业知识教学,2016计算机专业知识:计算机的分类(一)
  18. 第三章 java集合
  19. 基恩士CSV点云文件转PCD文件 PYTHON版
  20. 【Java】Java爬取国家统计局五级行政区划编码(省、市(州)、县(区)、乡(镇)、村)

热门文章

  1. jupyter表格中文乱码解决办法
  2. js通过FormData对象 异步提交文件 实现文件上传(附带参数)
  3. Linux下多线程pthread内存泄露
  4. JodaTime报时区异常错误
  5. 《你只是看起来很努力》--读书笔记
  6. 使用Appium进行Android自动化测试遇到编译不成功的错误处理
  7. php5.3升级脚本
  8. 成为富豪的22条秘诀
  9. 方法一 NTC热敏电阻转换温度的计算方式(分段法)
  10. qt实现抽屉效果,类似qq的好友功能