利用itext导出PDF的小例子
我这边使用的jar包:
itext-2.1.7.jar
itextasian-1.5.2.jar
代码,简单的小例子,导出pdf:
PdfService.java:
package com.cy.service; import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import org.springframework.stereotype.Service;
import com.lowagie.text.Cell;
import com.lowagie.text.Chunk;
import com.lowagie.text.Document;
import com.lowagie.text.DocumentException;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.PageSize;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Rectangle;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfPCell;
import com.lowagie.text.pdf.PdfPTable;
import com.lowagie.text.pdf.PdfWriter; @Service
public class PdfService { public static void main(String[] args) throws Exception {
//准备的参数
String specName = "基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN基本VLAN";
String matureTitle = "成熟度:";
String matureWord = "成熟特性 受控特性 不可商用";
String descriptionTitle = "描述:";
String descriptionWord = "从便利性、渲染效果综合来看,还是用XmlWorker好些。虽然渲染效果没有达到极致,但十分有利于用户自定义模板";
String remarkTitle = "备注:";
String remarkWord = "对于美制裁中兴一事,商务部新闻发言人高峰19日在回答记者提问时再次强调";
String boardName = "CloudEngine 12800 V200R001C00";
String pathTitle = "路径";
String pathWord = "CloudEngine 12800 V200R001C00>CE12800";
String xiangqTitle = "详情";
String xiangqWord = "美方行径引起了市场对美国贸易和投资环境的普遍担忧,美方的行为表面针对中国,但最终伤害的是美国自身,不仅会使其丧失数以万计的就业机会,还会影响成百上千的美国关联企业";
String beizTitle = "备注";
String beizWord = "将会动摇国际社会对美国投资和营商环境稳定的信心。希望美方不要自作聪明,否则只会自食其果。也希望美方不要低估中方的决心,如果美方坚持通过单边主义的保护政策,不惜伤害中美两国企业利益"; String outPath = "test.pdf";
Rectangle rect = new Rectangle(PageSize.A4);
Document doc=new Document(rect);
//中文字体,解决中文不能显示问题
BaseFont bfChinese=BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED); //设置字体样式
Font textFont = new Font(bfChinese,11,Font.NORMAL); //正常
Font boldFont = new Font(bfChinese,11,Font.BOLD); //加粗
Font titleFont = new Font(bfChinese,15,Font.BOLD); //二级标题
Color grayColor = new Color(204,204,204); PdfWriter.getInstance(doc, new FileOutputStream(new File(outPath)));
doc.open();
doc.newPage(); //规格名称
// Paragraph p= new Paragraph(specName, titleFont);
// p.setAlignment(Element.ALIGN_CENTER);
// doc.add(p);
PdfPTable head = new PdfPTable(1);
head.setTotalWidth(new float[]{520}); //设置列宽
head.setLockedWidth(true); //锁定列宽
head.setSpacingBefore(10f); // 前间距
head.setSpacingAfter(10f); // 后间距
PdfPCell cell1 = new PdfPCell(new Phrase(specName, titleFont));
cell1.setBorderWidth(0);
cell1.setBackgroundColor(grayColor);
cell1.setMinimumHeight(20); //设置单元格高度
cell1.setHorizontalAlignment(Cell.ALIGN_CENTER); //设置水平居中
cell1.setVerticalAlignment(Cell.ALIGN_MIDDLE); //设置垂直居中
head.addCell(cell1);
doc.add(head); //成熟度、描述、备注
Paragraph p = new Paragraph();
Phrase ph = new Phrase();
Chunk c1 = new Chunk(matureTitle, boldFont) ;
Chunk c2 = new Chunk(matureWord, textFont) ;
ph.add(c1);
ph.add(c2);
p.add(ph);
p.setLeading(20);
doc.add(p); p = new Paragraph();
ph = new Phrase();
c1 = new Chunk(descriptionTitle, boldFont) ;
c2 = new Chunk(descriptionWord, textFont) ;
ph.add(c1);
ph.add(c2);
p.add(ph);
p.setLeading(20);
doc.add(p); p = new Paragraph();
ph = new Phrase();
c1 = new Chunk(remarkTitle, boldFont) ;
c2 = new Chunk(remarkWord, textFont) ;
ph.add(c1);
ph.add(c2);
p.add(ph);
p.setLeading(20);
doc.add(p); //创建2列的详情表格
PdfPTable table = new PdfPTable(2);
table.setSpacingBefore(20f); //table前间距
table.setTotalWidth(new float[]{ 100, 420}); //设置列宽
table.setLockedWidth(true); //锁定列宽
PdfPCell cell;
//第一行 实例名
cell = new PdfPCell(new Phrase(" ", textFont));
cell.setMinimumHeight(30); //设置单元格高度
cell.setBackgroundColor(grayColor);
table.addCell(cell);
cell = new PdfPCell(new Phrase(boardName, textFont));
cell.setBackgroundColor(grayColor);
cell.setUseAscender(true); //设置可以居中
cell.setHorizontalAlignment(Cell.ALIGN_CENTER); //设置水平居中
cell.setVerticalAlignment(Cell.ALIGN_MIDDLE); //设置垂直居中
table.addCell(cell);
//第二行 路径
cell = new PdfPCell(new Phrase(pathTitle, textFont));
cell.setMinimumHeight(40);
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
cell = new PdfPCell(new Phrase(pathWord, textFont));
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
//第三行 详情
cell = new PdfPCell(new Phrase(xiangqTitle, textFont));
cell.setMinimumHeight(80);
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
cell = new PdfPCell(new Phrase(xiangqWord, textFont));
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
//第四行 备注
cell = new PdfPCell(new Phrase(beizTitle, textFont));
cell.setMinimumHeight(120);
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell);
cell = new PdfPCell(new Phrase(beizWord, textFont));
cell.setUseAscender(true);
cell.setHorizontalAlignment(Cell.ALIGN_CENTER);
table.addCell(cell); doc.add(table);
doc.close(); System.out.println("------------->>写出完毕");
} }
运行之后导出的效果:
利用itext导出PDF的小例子的更多相关文章
- java利用itext导出pdf
项目中有一功能是导出历史记录,可以导出pdf和excel,这里先说导出pdf.在网上查可以用那些方式导出pdf,用itext比较多广泛. 导出pdf可以使用两种方式,一是可以根据已有的pdf模板,进行 ...
- Java利用IText导出PDF(更新)
我很久以前写的还是上大学的时候写的:https://www.cnblogs.com/LUA123/p/5108007.html ,今天心血来潮决定更新一波. 看了下官网(https://itextpd ...
- 利用itext生成pdf的简单例子
一.itext简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
- Itext导出PDF,word,图片案例
iText导出pdf.word.图片 一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生 ...
- 利用FR导出PDF汉字乱码的处理
利用FR导出pdf,然后在unigui中显示,发现汉字乱码,改成gb2312,不乱码,但不自动折行,最后是改成DefaultCharSet搞定.FR版本:5.4.6 后记:有的浏览器中还是乱码,把字体 ...
- 新知识:Java 利用itext填写pdf模板并导出(昨天奋战到深夜四点,知道今天两点终于弄懂)
废话少说,不懂itext干啥用的直接去百度吧. ***************制作模板******************* 1.先用word做出界面 2.再转换成pdf格式 3.用Adobe Acr ...
- iText导出pdf、word、图片
一.前言 在企业的信息系统中,报表处理一直占比较重要的作用,本文将介绍一种生成PDF报表的Java组件--iText.通过在服务器端使用Jsp或JavaBean生成PDF报表,客户端采用超级连接显示或 ...
- (转)关于使用iText导出pdf
一.iText简介 iText是著名的开放源码的站点sourceforge一个项目,是用于生成PDF文档的一个java类库.通过iText不仅可以生成PDF或rtf的文档,而且可以将XML.Html文 ...
- iText导出PDF(图片,水印,页眉,页脚)
项目需要导出PDF,导出的内容包含图片和文本,而且图片的数量不确定,在网上百度发现大家都在用iText,在官网发现可以把html转换为PDF,但是需要收费,那就只能自己写了. 在开始之前先在网上百度了 ...
随机推荐
- 两道不错的递推dp
hdoj-4055 #include <cstdio> #include <cstring> #include <iostream> #include <al ...
- JS从数组中随机取出几个数组元素的方法
原文链接:http://caibaojian.com/js-get-random-elements-from-array.html js如何从一个数组中随机取出一个元素或者几个元素. 假如数组为· v ...
- Xenserver之HA实现-NFS的实现
环境: 在vm上安装好一台Xenserver服务器,一台centos7虚拟机(用来做NFS存储,因为实现HA需要共享存储),网络连接方式为桥接模式 echo '- - -'>> /sys/ ...
- Arrays类的使用
定义 : 此类包含用来操作数组(比如排序和搜索)的各种方法.使用需要导入import java.util.Arrays;包 1.sort方法(对数组进行升序排列) public class Array ...
- MySQL--时间戳属性1
============================================================================== DATETIME类型和TIMESTAMP类 ...
- oracle-锁概念
http://liwenshui322.iteye.com/blog/1166934 ORACLE DDL锁介绍 在DDL操作中会自动为对象加DDL锁(DDL Lock),从而保护这些对象不会被其他会 ...
- oracle-sql优化器
优化器optimizer Oracle 执行计划(Explain Plan) 说明 http://langgufu.iteye.com/blog/2158163 explain plan是一个dml语 ...
- 突破本地离线存储的JS库 localforage
localforage 简介 项目地址 https://github.com/localForage/localForage API中文地址 https://localforage.docschina ...
- python引入自定义模块
Python的包搜索路径 Python会在以下路径中搜索它想要寻找的模块:1. 程序所在的文件夹2. 标准库的安装路径3. 操作系统环境变量PYTHONPATH所包含的路径 将自定义库的路径添加到Py ...
- Hadoop 历史服务配置启动查看
历史服务配置启动查看 1)配置mapred-site.xml <property> <name>mapreduce.jobhistory.address</name> ...