java利用itext导出pdf

更新时间:2023-07-31 06:09:14 阅读: 评论:0

java利⽤itext导出pdf
项⽬中有⼀功能是导出历史记录,可以导出pdf和excel,这⾥先说导出pdf。在⽹上查可以⽤那些⽅式导出pdf,⽤itext⽐较多⼴泛。导出pdf可以使⽤两种⽅式,⼀是可以根据已有的pdf模板,进⾏⽣成⽂档。⼆是直接⽤代码⽣成pdf
⼀、使⽤模板⽣成pdf
电脑清理工具
1、添加依赖
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.5.10</version>
</dependency>
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itext-asian</artifactId>
<version>5.2.0</version>
</dependency>
陈皮的药用价值
2、创建word,创建需要的样式,例如,保存为pdf格式,
3、使⽤Adobe Acrobat 打开,打开内容编辑,选择编辑域,编辑域的名称与代码的数据属性名对应。
什么的住宅>咏春实战4、java代码
import java.io.ByteArrayOutputStream;
import java.io.FileOutputStream;
import java.util.Iterator;
import Document;
import pdf.AcroFields;
import pdf.PdfCopy;
import pdf.PdfImportedPage;
import pdf.PdfReader;
import pdf.PdfStamper;
/**
* @Title: CreatePdf.java
* @Description: TODO
* @author zhangjunhong
* @date 2018年10⽉22⽇
志愿者口号*/
public class CreatePdf {
public static void fillTemplate() throws Exception {
//读取的模板
String templatePath = "D:/mypdf1.pdf";
//⽣成的pdf存储的路径
String targetPath = "D:/test1.pdf";
PdfReader reader;
FileOutputStream outputStream;
ByteArrayOutputStream bos;
PdfStamper stamper;
reader = new PdfReader(templatePath);
outputStream = new FileOutputStream(targetPath);
bos = new ByteArrayOutputStream();
stamper = new PdfStamper(reader, bos);
//取得模板表单对应的域
AcroFields from = AcroFields();
String[] strings = { "12222", "zahang", "男", "1992-09-12" };
int i = 0;
Iterator<String> iterator = Fields().keySet().iterator();
while (iterator.hasNext()) {
String name = ().toString();
from.tField(name, strings[i++]);
幻想的近义词}
stamper.tFormFlattening(true);
stamper.clo();
Document document = new Document();
PdfCopy copy = new PdfCopy(document, outputStream);
document.open();
PdfImportedPage importedPage = ImportedPage(new ByteArray()), 1);
copy.addPage(importedPage);
document.clo();
}
茉莉花如何养殖
public static void main(String[] args) throws Exception{
fillTemplate();
}
}
5、结果
⼆、根据数据⽣成pdf并导出,这个好像挺简单的,直接代码⼀波,看注释,也可以⽣成表格之类的
@RequestMapping("/export/pdf")
public void exPdf(HttpServletRespon respon){
OutputStream os=null;
try {
// 指定解析器
System.tProperty("l.parrs.DocumentBuilderFactory",
"com.s.internal.jaxp.DocumentBuilderFactoryImpl");
String filename = "⼤⾯积延误历史记录详情.pdf";
respon.tContentType("application/pdf");
respon.tHeader("Content-Disposition",纸条手工
"attachment;fileName=" + de(filename, "UTF-8"));
os = new OutputStream());
//⽣成pdf
Document document=new Document();
PdfWriter Instance(document, os);
// 页⾯⼤⼩
Rectangle rectangle = new Rectangle(PageSize.A4);
// 页⾯背景颜⾊
rectangle.tBackgroundColor(BaColor.WHITE);
document.tPageSize(rectangle);
// 页边距左,右,上,下
document.tMargins(20, 20, 20, 20);
document.open();
//中⽂字体 ----不然中⽂会乱码
BaFont bf = ateFont("STSong-Light", "UniGB-UCS2-H",BaFont.NOT_EMBEDDED);
//设置字体
Font font = new Font(bf, 14, Font.BOLD, BaColor.BLACK);
Paragraph p=new Paragraph("设置了字体样式的标题哈哈哈哈哈今天⽐较闲嘤嘤嘤", font);
document.add(p);
document.clo();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.clo();
} catch (IOException e) {
e.printStackTrace();
}
}
还有很多对pdf的操作,如添加page,表格等,可查看itext的官⽅⽂档,
最后是不是贴上我花了⼏天写的pdf导出,这个技术是简单了,尼玛项⽬业务逻辑贼复杂。周五任务完成截⽌⽇期,昨天写完啦,等前端对
接接⼝,,就写写博客,算了,先不贴代码。我再整理整理

本文发布于:2023-07-31 06:09:14,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1124445.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:导出   样式   添加   编辑   模板   历史记录
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图