java word模板生成pdf,java根据模板生成pdf
一、创建word模板。 word模板如图:
二、将word模板转pdf模板。
三、用Adobe Acrobat Pro打开pdf模板。
四、编辑模板域,即要填写的内容。
点击表单选择添加或编辑域选项:
双击可以 修改域的变量名及样式字体的设置。
然后保存这样pdf的模板就生成了。
六、添加mawen引用:
com.itextpdf
itextpdf
5.4.3
七、生成代码:
public static void pdfout(Mapo) {//模板路径
String templatePath = "D:/模板1.pdf";//生成的新文件路径
String newPDFPath = "D:/test.pdf";
PdfReader reader;
FileOutputStream out;
ByteArrayOutputStream bos;
PdfStamper stamper;try{
BaseFont bf= BaseFont.createFont("c://windows//fonts//simsun.ttc,1", BaseFont.IDENTITY_H, BaseFont.EMBEDDED);
Font FontChinese= new Font(bf, 5, Font.NORMAL);
out= new FileOutputStream(newPDFPath);//输出流
reader = new PdfReader(templatePath);//读取pdf模板
bos = newByteArrayOutputStream();
stamper= newPdfStamper(reader, bos);
AcroFields form=stamper.getAcroFields();//文字类的内容处理
Map datemap = (Map)o.get("datemap");
form.addSubstitutionFont(bf);for(String key : datemap.keySet()){
String value=datemap.get(key);
form.setField(key,value);
}//图片类的内容处理
Map imgmap = (Map)o.get("imgmap");for(String key : imgmap.keySet()) {
String value=imgmap.get(key);
String imgpath=value;int pageNo = form.getFieldPositions(key).get(0).page;
Rectangle signRect= form.getFieldPositions(key).get(0).position;float x =signRect.getLeft();float y =signRect.getBottom();//根据路径读取图片
Image image =Image.getInstance(imgpath);//获取图片页面
PdfContentByte under =stamper.getOverContent(pageNo);//图片大小自适应
image.scaleToFit(signRect.getWidth(), signRect.getHeight());//添加图片
image.setAbsolutePosition(x, y);
under.addImage(image);
}
stamper.setFormFlattening(true);//如果为false,生成的PDF文件可以编辑,如果为true,生成的PDF文件不可以编辑
stamper.close();
Document doc= newDocument();
Font font= new Font(bf, 32);
PdfCopy copy= newPdfCopy(doc, out);
doc.open();
PdfImportedPage importPage= copy.getImportedPage(new PdfReader(bos.toByteArray()), 1);
copy.addPage(importPage);
doc.close();
}catch(IOException e) {
System.out.println(e);
}catch(DocumentException e) {
System.out.println(e);
}
}
代码测试:
public static voidmain(String[] args) {
Map map = newHashMap();
map.put("Name","张三");
map.put("Code","2565");
map.put("Number","123456789");
Map map2 = newHashMap();
map2.put("img","d:/Spring.jpg");
Map o=newHashMap();
o.put("datemap",map);
o.put("imgmap",map2);
pdfout(o);
}
原文:https://www.cnblogs.com/Revival-of-everything/p/12082814.html
java word模板生成pdf,java根据模板生成pdf相关推荐
- java word批注_编写Java批注
java word批注 Java 批注的允许的属性类型刻意非常严格,但是允许的类型也可以使用一些简洁的复合批注类型. 考虑教程站点中的示例注释: package annotation; @interf ...
- java word转html 烟火,Java多线程制作烟花效果.doc
Java多线程制作烟花效果 Java多线程应用实例: 制作烟花效果 本例知识点一句话讲解新学知识使用Thread类管理线程已学知识Math类产生随机数使用Color类设置颜色使用Graphics类绘制 ...
- java word 另存为_在java中将word文件另存为html
我找到了Zack Macomber提示的答案,我使用宏转换word文件到html文件.我给出了该宏的编码.将宏名称保存为"saveashtml" Sub saveashtml() ...
- java word 乱码_java另存word时出现乱码怎么办
java另存word时出现乱码怎么办 发布时间:2020-04-07 11:05:31 来源:亿速云 阅读:92 作者:小新 这篇文章主要为大家详细介绍了java另存word时出现乱码怎么办,文中示例 ...
- java word 乱码_java word 乱码怎么办,_Java_ 少侠科技
详细内容 java word 乱码怎么办? Java另存Word并解决乱码问题* 专家意见另存word *@YaoWei *2014-6-16 下午12:09:07 * @param request ...
- java生成pdf(word模板转html,html再转pdf)
场景描述: 公司需要做一个打印功能,采用生成PDF的形式.由于PDF需要动态生成某些行,不能采用制作PDF表单的形式,word文档直接转PDF的形式会导致排版不美观.由于需要部署在linux服务器,采 ...
- java word模板poi生成文件_利用poi读取word模板文件生成新的word文档
利用poi读取word模板文件生成新的word文档 利用poi读取word模板文件,并回填逻辑数据,生成并导出需要的word文档源码.解决模板读取异常问题,提供wordUtils工具类(各种功能实现) ...
- java 生成水印,Java 用html模板生成 Pdf 加水印
生成PDF报表是很多企业系统常见的需求, 有些对外提供报表的系统还需要对生成的pdf文件添加水印, 本文将介绍以上2个问题简单又免费的技术方案 ( 商业收费可见: 最新版ItextPdf ) 依赖 免 ...
- java word根据模板导出_简历不知道如何写起,推荐几个简历模板
通常简历用 pdf 格式最好,因为pdf不可编辑,浏览器就能打开,不用担心像word那样不同操作系统的兼容问题. 1.冷熊简历是一个运行在浏览器里边的 Markdown 编辑器, 支持 Markdow ...
- java pdf 插入图片_java在pdf模板的指定位置插入图片
个人感觉pdf的操作比word舒心多了 java操作pdf有个非常好用的库itextpdf,maven: com.itextpdf itextpdf 5.5.6 com.itextpdf itext- ...
最新文章
- C++ 向量(vector) 的使用
- python语言入门p-python初学者怎么入门
- 开服侠显示服务器已停止,蜘蛛侠:极限(已关服)无法连接服务器是什么原因...
- NeurIPS 2021有哪些值得读的NLP论文?
- LeetCode 31 下一个排列
- 我们正在经历一个应用疲惫时代?
- 我就传个图片都不通过迈
- php中find的函数_filter()、find()函数的区别
- Android自定义View之paint(一)
- 矩阵理论(三)向量矩阵的求导
- 建模没有用『灵敏度分析』,一半儿的报名费已经飞了
- 小程序 tab 切换点击无效
- 利用python多个工作簿合并到一个工作簿
- 【学习笔记】seckill-秒杀项目--(6)秒杀功能
- 寒霜朋克计算机丢失,Frostpunk寒霜朋克冰汽时代已停止工作修复补丁(Windows6.1-KB2670838-x64)...
- 古风排版(20 分)
- Titanic 泰坦尼克号预测-Tensorflow 方法-【Kaggle 比赛】
- MYSQL 基础篇 | 02-MYSQL基础应用
- 国内外网站空间优劣势
- Python----Hello程序