java生成不可修改的pdf_好記性不如爛筆頭4-JAVA生成PDF文件
使用iText JAR生成PDF
在很多的場合,需要使用PDF文件,有時候也要設置PDF文件的表格和文字等。
如果讓一個PDF工具類非常靈活,那么這個工具類就會很復雜;一般根據實際情況,寫幾個合適的工具類來分別實現不同要求;
需要引入第三方jar包:iText-2.1.4.jar和iTextAsian.jar
package com.daily;
import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import com.daily.EasyExcel.Content;
import com.lowagie.text.Cell;
import com.lowagie.text.Document;
import com.lowagie.text.Element;
import com.lowagie.text.Font;
import com.lowagie.text.Paragraph;
import com.lowagie.text.Phrase;
import com.lowagie.text.Table;
import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfWriter;
/**
*生成pdf文件,書寫普通文字,制作表格,設置文字顏色和簡單排版等
*@author范芳銘
*/
public class EasyPdf {
privatevoid createPdfFile(String outFilename,Map model,List table) throws Exception{
try{
OutputStream file = newFileOutputStream(new File(outFilename));
Document document = newDocument();
PdfWriter.getInstance(document,file);
document.open();
document.add(newParagraph("Hello PDF")); //簡單文字
document.add(new Paragraph(newDate().toString())); //簡單日期
//設置字體,表格等內容
BaseFont bfComic =BaseFont.createFont("STSong-Light", "UniGB-UCS2-H", BaseFont.NOT_EMBEDDED);
Font font = newFont(bfComic, 16,Font.NORMAL);//聲明字體對象
font = newFont(bfComic,16,1,new Color(255,0,0));//設置字體
String header =(String)model.get("header");//獲取標題
Paragraph headerParagraph =new Paragraph(header,font);
headerParagraph.setAlignment(Paragraph.ALIGN_CENTER);//設置格式
document.add(headerParagraph);//添加到Document對象中
font = new Font(bfComic,10, Font.NORMAL);//聲明字體樣式
//設置PDF中表格的表頭
String title[] = {"code","名稱"};
Table t = newTable(title.length);//聲明表格對象
t.normalize();
t.setAutoFillEmptyCells(true);
t.setAlignment(Table.ALIGN_CENTER);//居中
t.setWidth(108);//設置寬度
for(int i = 0 ; i
Cell celltitle = newCell();//聲明單元格
celltitle.add(newPhrase(title[i],font));//循環加入表頭信息
celltitle.setHorizontalAlignment(Element.ALIGN_CENTER);
t.addCell(celltitle);
}
t.endHeaders();
//加入表格內容
Content content = null;
for (int i = 0; i
//得到要寫入表格的記錄
content = table.get(i);
CelloneCell = new Cell(); //聲明單元格對象
Paragraphpgdata = new Paragraph(content.getCode(),font);
oneCell.setHorizontalAlignment(Element.ALIGN_CENTER);//對齊方式
oneCell.addElement(pgdata);
t.addCell(oneCell);
CelltwoCell = new Cell(); //聲明單元格對象
twoCell.setHorizontalAlignment(Element.ALIGN_CENTER);//對齊方式
twoCell.addElement(pgdata);
t.addCell(twoCell);
}
document.add(t);
String copyright =(String)model.get("copyright");
ParagraphcopyrightParagraph = new Paragraph(copyright,font);
copyrightParagraph.setAlignment(Paragraph.ALIGN_BOTTOM);
document.add(copyrightParagraph);
document.close();
file.close();
} catch (Exception e) {
e.printStackTrace();
}
}
publicstatic void main(String[] args) throws Exception{
//初始化數據
Mapmodel = new HashMap();
//文件標題頭
model.put("header","詳細信息");
//文件版權信息
model.put("copyright","版權所有:阿飯同學的博客 http://blog.csdn.net/ffm83");
//生成表格的內容,內部類的構造有點特殊
Listcontents = new ArrayList();
contents.add(newEasyPdf().new Content("100","name100"));
contents.add(newEasyPdf().new Content("101","name101"));
contents.add(newEasyPdf().new Content("102","name102"));
longstart = System.currentTimeMillis();
EasyPdfpdf = new EasyPdf();
pdf.createPdfFile("d:/ffm83/easy.pdf",model,contents);
longend = System.currentTimeMillis();
System.out.println("生成pdf文件耗時:"+ (end - start) + "(毫秒)");
}
//一個簡單的保存簡單信息的內部類
publicclass Content {
privateString code;
private String name;
public Content(String code,String name){
this.code= code;
this.name= name;
}
publicString getCode() {
returncode;
}
publicvoid setCode(String code) {
this.code= code;
}
publicString getName() {
returnname;
}
publicvoid setName(String name) {
this.name= name;
}
}
}
java生成不可修改的pdf_好記性不如爛筆頭4-JAVA生成PDF文件相关推荐
- java程序设计实用教程高飞pdf_普通高等教育“计算机类专业”规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载...
普通高等教育"计算机类专业"规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载 图书介绍 ☆☆☆☆☆ 高飞,赵小敏,陆佳炜 等 著 下载链接在页面底 ...
- Java pdf文件传输_java中pdf文件的管理(pdf文件转png文件,base64传输文件以及删除)...
org.apache.pdfbox pdfbox 2.0.12 影像文件转为base64编码使用java自带的BASE64Encoder类 代码部分: 前端上传文件的保存: @RequestMappi ...
- Itext生成pdf文件,itext+Freemarker生成pdf,(中文空白解决)
来源:https://my.oschina.net/lujianing/blog/894365 1.背景 在某些业务场景中,需要提供相关的电子凭证,比如网银/支付宝中转账的电子回单,签约的电子合同等. ...
- Java中实现PDF文件转二进制流
加入相关依赖 <!-- https://mvnrepository.com/artifact/pdfbox/pdfbox --> <dependency><groupId ...
- 如何编辑PDF文件,怎么修改PDF中的文字
相信大家都使用过PDF文件,那么有没有编辑过PDF文件呢,PDF文件的编辑是需要借助PDF编辑器的,PDF文件中的文字要怎么修改呢,Word文档的文字就直接编辑,而PDF文件并非这样,想知道怎么编辑吗 ...
- PDF文件有修改权限如何取消
PDF文件有修改权限,就不能编辑PDF文件.不能复制PDF文件里面的内容.不能打印PDF文件,另一种说法就是PDF文件设置了编辑限制.想要取消这种限制权限都是需要正确密码支持的.如果你不知道正确密码的 ...
- PDF文件可以修改吗?来看看这几种方法
PDF文件可以修改吗?你知道PDF文件的修改方法吗?PDF文件对于现在工作的我们来说,无疑是比较头痛的一种文件,难编辑性让PDF文件充满着神秘感,我们想要编辑修改PDF文件就需要使用到转换的PDF编辑 ...
- java在主程序修改函数输出,Java通过JNI调用CUDA
--NG 这段时间因为工作需要,要用到在java中调用cuda程序,但是令人蛋疼的是网上这方面的资料几乎没有,所以只好我自己摸索.我的想法是通过java的JNI接口调用cuda,但是很明显正常情况下是 ...
- java探针之修改类字节码文件
java探针利用了javaAgent + ASM字节码注入工具实现了动态修改类文件的功能.像skywalking和arthas都使用到了这个技术. 具体原理为: jdk1.5以后引入了javaAgen ...
最新文章
- 切割图形_模型教程丨切割机使用——结合实例
- 每日一皮:看图猜一个数据库连接池!
- Hibernate持久化类与主键生成策略
- 日服巫术online过驱动保护分析(纯工具)(工具+自写驱动)
- Linux项目自动化构建工具 make/Makefile
- 学习ActiveMQ(五):activemq的五种消息类型和三种监听器类型
- C# 连接SQL 连接字符串
- C#使用正则表达式检测数字 char 和韩文
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--K-密码
- JavaScript我学之七数组
- 齐杰文学CMS - 关关采集器2021可用19条采集规则
- lsb隐写的基本方法matlab,GitHub - RGNil/RG_LSB: 利用python实现LSB隐写算法(我自己改进了LSB算法),并进行了性能分析(psnr、错误率、鲁棒性)...
- java rgb yuv_RGB,CMY(K),YUV,YIQ,YCbCr顏色的轉換算法(java實現)
- 您的计算机配置已更改,你的硬件设置已更改请重启电脑怎么回事
- 李飞飞:我怎样走上 AI 研究之路的?
- vue 父组件与子组件直接的相互传值(愚见)
- Android 中英文切换的实现。
- 嵌入式硬件基础知识汇总<附带与硬件密切相关的软件介绍>
- 古今中外一切有大建树者,无一不惜时如金
- 舆情监测意思及监测工作流程详介
热门文章
- HDU4699 Editor
- asp.net mvc 连接sqlserver数据库
- uc打开html文件是空的,UC浏览器中打开不出现主页的解决方法
- 7-2 平面向量加法 (15 分)
- 作为一个才刚刚开始学习java的小白 居然显示码龄3年??每天吃饭点菜成为了一个难题 然后今天简单写了一个随机菜单
- matlab中用polyfit、regress、nlinfit等进行详细的回归分析
- 【2019CSP-J普及组】T4 加工零件
- 【翻译】揭开HTML5的神秘面纱
- 平衡树(splay)学习笔记(详细,从入门到精(bao)通(ling))(持续更新)
- qt5应用程序打包发布和qt5的mysql驱动编译