aspose word模板文件生成pdf
# aspose word模板文件生成pdf
package com.example.core.mydemo; import com.alibaba.fastjson.JSON;
import com.aspose.words.*;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import java.io.InputStream;
import java.util.Map;
import java.util.Objects;
import java.util.regex.Pattern; public class WordUtil { public static final String PARAM_MATCH = "\\{[a-zA-Z]+\\}"; private static final Logger logger = LoggerFactory.getLogger(WordUtil.class); public static void replaceText(Map<String,String> paramMap,Document doc) throws Exception { FindReplaceOptions opt = new FindReplaceOptions();
for (Map.Entry<String, String> entry : paramMap.entrySet()) {
String key = String.format("{%s}", entry.getKey());
String value = Objects.isNull(entry.getValue()) ? "" : entry.getValue();
doc.getRange().replace(key,value,opt);
} int replace = doc.getRange().replace(Pattern.compile(PARAM_MATCH), "", opt);
if(replace>0){
logger.error("未知参数:{}",JSON.toJSONString(paramMap));
} } public static void replaceBookMark(String bookmarkName,String newBookValue,Document doc) throws Exception { BookmarkCollection bookmarks = doc.getRange().getBookmarks();
for (Bookmark bookmark : bookmarks) {
if(Objects.equals(bookmark.getName(),bookmarkName)){
bookmark.setText(newBookValue);
return;
}
}
} public static void replaceBookMarkImage(String bookmarkName, InputStream inputStream, Document doc) throws Exception { DocumentBuilder db=new DocumentBuilder(doc);
db.moveToBookmark(bookmarkName);
db.insertImage(inputStream,119.4,64);
}
} package com.example.core.mydemo; import com.aspose.words.Document;
import com.aspose.words.SaveFormat; import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map; public class PDFTest {
public static final String PDF = ".pdf"; public static void main(String[] args) {
try{
String templatePath = "E:\\contract2.docx";
Document document=new Document(new FileInputStream(templatePath));
Map paramsMap = new HashMap();
paramsMap.put("realname","刘德华");
paramsMap.put("addr","香港");
WordUtil.replaceText(paramsMap,document); String name="aaabbb";
File tempFile = File.createTempFile(name, PDF); System.out.println("文件=" + tempFile.getName());
document.save(new FileOutputStream(tempFile), SaveFormat.PDF);
System.out.println("finish" + tempFile.getAbsolutePath() + "-" + tempFile.getCanonicalPath()); }catch (Exception e){
e.printStackTrace();
}
}
}
contract2.docx 模板文件
通知
明星 {realname} 在{addr}举行演唱会,大家来捧场啊!!
导入jar包
aspose-words-19.5jdk.jar
aspose-cells-8.5.2.jar
生成的pdf文件样式
通知
明星 刘德华 在香港举行演唱会,大家来捧场啊!!
aspose word模板文件生成pdf的更多相关文章
- 使用NPOI按照word模板文件生成新的word文件
/// <summary> /// 按照word模板文件 生成新word文件 /// </summary> /// <param name="tempFile& ...
- 在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!
这几天找WEB打印控件,要么收费的,要么免费的只能在IE里用! 我只想简单的打个标签纸!百度2天,看到一老兄说可以用PDF,然后又开始百度..找到了一篇文章 http://www.jianshu.co ...
- java代码操作word模板并生成PDF
这个博客自己现在没时间写,等后面有时间了,自己再写. 这中需求是在实际的项目开发中是会经常遇到的. 下面我们先从简单入手一步一步开始. 1.首先,使用word创建一个6行两列的表格. 点击插入-6行2 ...
- Aspose Word模板使用总结
Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据 新建一个Word文档,命名为Template.doc 注意:这里并不是输入"< ...
- Csharp 简单操作Word模板文件
原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档 Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...
- SpringBoot 集成 FreeMarker 导出 Word 模板文件(底部附源码)
思路解说 word 模板文件(doc 或 docx 文件)另存为 xml 文件 将后缀 xml 改成 html:大部分文档会改成 ftl(FreeMarker 的后缀名),因为 word 文件另存为 ...
- python基于word模板批量生成word文件
1.需要用到docxtpl库,用于操作word模板 安装:pip insatll docxtpl 处理之前的word模板 处理后的word 下面直接上代码揭开它的神秘面纱:第一步,读取excel中的内 ...
- java根据模板文件导出pdf
原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...
- 依据word模板批量生成试卷
java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...
- 通过Aspose.Word和ZXING生成复杂的WORD表格
1.前言 这是我之前做的一个项目中要求的功能模块,它的需求是生成一个WORD文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是 ...
随机推荐
- 钉钉宜搭亮相“第二届ISIG中国产业智能大会”:云钉低代码,构建企业酷应用
简介:低代码年度行业盛会!钉钉宜搭创始人叶周全受邀出席并发表主题演讲. 12月8日,由中国电子技术标准化研究院指导,RPA中国.LowCode低码时代.信创中国联合举办的"第二届ISIG中 ...
- 爽了!免费的SSL,还能自动续期!
作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 大家好,我是技术UP主小傅哥. 兄弟,当你手里有不少域名,每个域名又配置子域名,那么ssl将是 ...
- 259k+ Star!这是我见过最全的开发者技术学习路线!
大家好,我是 Java陈序员. 自从上班后,身体是一天不如一天了,也很少有时间可以去学习新技术了.程序员如果技术跟不上,很容易就被淘汰. 而碎片化的学习效率又不高,往往今天学了,明天就忘了.有时候更是 ...
- Oracle【ORA-00600 internal error code arguments [2662]】恢复一例
背景 1.数据库版本:11.2.0.4 2.未开启归档 3.没有备份:无RMAN备份.无DUMP备份 4.数据库redo log全部删除. 解决思路: Oracle 的隐含参数: _allow_res ...
- 一键自动化博客发布工具,用过的人都说好(cnblogs篇)
cnblogs和其他的博客平台相比会比较复杂,需要设置的项目也比较多一些,弄懂了cnblogs的实现方式,那么你应该对selenium的整个框架使用已经烂熟于心了. 除了正常的标题,内容,摘要之外,c ...
- HTTP 报文详解
报文的语法 所有的 HTTP 报文都可以分为两类:请求报文和响应报文.请求报文会向 Web 服务器请求一个动作,响应报文会将请求的结果返回给客户端.请求和响应报文的基本报文结构相同 请求报文的格式: ...
- 高性能远程控制软件,完美替代Anydesk
Anydesk是一款来自德国的远程软件,据悉是Teamviewer团队成员出来独立门户做的.Anydesk给人一种小而美的感觉,软件体积小,性能高,被视为Teamviewer的替代产品.现在,AnyD ...
- vue项目使用研究1
在windows上安装了npm vue-cli之后,创建vue项目. 用pycharm打开 vue form表单最简单提交方法 <!DOCTYPE html> <html lang= ...
- sass变量的详细使用
sass变量同javascript变量,可以用来存储一些信息,并且可以重复使用. 先来对比一下css中的变量 同css变量对比 CSS 变量是由 CSS 作者定义的,它包含的值可以在整个文档或指定的范 ...
- C#.Net筑基-类型系统②常见类型
01.结构体类型Struct 结构体 struct 是一种用户自定义的值类型,常用于定义一些简单(轻量)的数据结构.对于一些局部使用的数据结构,优先使用结构体,效率要高很多. 可以有构造函数,也可以没 ...