# 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的更多相关文章

  1. 使用NPOI按照word模板文件生成新的word文件

    /// <summary> /// 按照word模板文件 生成新word文件 /// </summary> /// <param name="tempFile& ...

  2. 在.net Core 使用PDF模板文件生成PDF文件,代替WEB打印控件!

    这几天找WEB打印控件,要么收费的,要么免费的只能在IE里用! 我只想简单的打个标签纸!百度2天,看到一老兄说可以用PDF,然后又开始百度..找到了一篇文章 http://www.jianshu.co ...

  3. java代码操作word模板并生成PDF

    这个博客自己现在没时间写,等后面有时间了,自己再写. 这中需求是在实际的项目开发中是会经常遇到的. 下面我们先从简单入手一步一步开始. 1.首先,使用word创建一个6行两列的表格. 点击插入-6行2 ...

  4. Aspose Word模板使用总结

    Aspose Word模板使用总结 1.创建word模版,使用MergeFeild绑定数据     新建一个Word文档,命名为Template.doc     注意:这里并不是输入"< ...

  5. Csharp 简单操作Word模板文件

    原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject> Website i ...

  6. SpringBoot 集成 FreeMarker 导出 Word 模板文件(底部附源码)

    思路解说 word 模板文件(doc 或 docx 文件)另存为 xml 文件 将后缀 xml 改成 html:大部分文档会改成 ftl(FreeMarker 的后缀名),因为 word 文件另存为 ...

  7. python基于word模板批量生成word文件

    1.需要用到docxtpl库,用于操作word模板 安装:pip insatll docxtpl 处理之前的word模板 处理后的word 下面直接上代码揭开它的神秘面纱:第一步,读取excel中的内 ...

  8. java根据模板文件导出pdf

    原文:https://www.cnblogs.com/wangpeng00700/p/8418594.html 在网上看了一些Java生成pdf文件的,写的有点乱,有的不支持写入中文字体,有的不支持模 ...

  9. 依据word模板批量生成试卷

    java-word-MassProduction 目录 使用方法 开发流程 一.使用方法 1.制造题库所需Word模板 需要填充数据的地方使用 ${pid} 代替. 将这个word选择另存为,保存格式 ...

  10. 通过Aspose.Word和ZXING生成复杂的WORD表格

    1.前言 这是我之前做的一个项目中要求的功能模块,它的需求是生成一个WORD文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是 ...

随机推荐

  1. 深信服智能边缘计算平台与 OpenYurt 落地方案探索与实践

    ​简介:本文将介绍边缘计算落地的机遇与挑战,以及边缘容器开源项目 OpenYurt 在企业生产环境下的实践方案. 作者:赵震,深信服云计算开发工程师,OpenYurt 社区 Member 编者案:在 ...

  2. 搜索NLP行业模型和轻量化客户定制

    ​简介:开放搜索NLP行业模型和轻量化客户定制方案,解决减少客户标注成本.完全无标注或少量简单标注的等问题,让搜索领域扩展更易用. 特邀嘉宾: 徐光伟(昆卡)--阿里巴巴算法专家 搜索NLP算法 搜索 ...

  3. Springboot+Prometheus+grafana 制作自己的业务监控

    目录 知识储备 系统架构 开始实现 生成业务指标 经典实现方法 自己的实现方案 引入依赖 配置文件 注册自己的指标[我这里用的是guaua格式数据] 写入指标 效果展示 配置prometheus 抓取 ...

  4. SAP集成技术(二)接口库

    目前还没有一个集中的地方能找到全部SAP接口,它们分散在几个不同的地方. 本文链接:https://www.cnblogs.com/hhelibeb/p/17843509.html 内容部分来自< ...

  5. 【爬虫实战】用python爬今日头条热榜TOP50榜单!

    目录 一.爬取目标 二.爬取结果 三.代码讲解 四.技术总结 五.演示视频 六.附完整源码 一.爬取目标 您好!我是@马哥python说,一名10年程序猿. 今天分享一期爬虫案例,爬取的目标是:今日头 ...

  6. 简说Python之函数

    目录 Python的函数 函数的简单调用 函数传参 返回值 计算圆形面积 变量作用域 局部变量 全局变量 就像平时玩的积木,函数就是一个个成块的积木,可以组合你想要的任何形状. Python的函数 函 ...

  7. 大数据面试SQL每日一题系列:最高峰同时在线主播人数。字节,快手等大厂高频面试题

    大数据面试SQL每日一题系列:最高峰同时在线主播人数.字节,快手等大厂高频面试题 之后会不定期更新每日一题sql系列. SQL面试题每日一题系列内容均来自于网络以及实际使用情况收集,如有雷同,纯属巧合 ...

  8. Linux中的cp命令

    Linux中cp命令用来赋值文件或者目录,其常用的命令选项如下: 下面是cp命令的一些使用示例: 默认情况下,cp命令赋值出来的权限或者属性通常来源自操作者本身.比如上面在root身份在执行cp命令, ...

  9. FFmpeg开发笔记(二十)Linux环境给FFmpeg集成AVS3解码器

    ​AVS3是中国AVS工作组制定的第三代音视频编解码技术标准,也是全球首个已推出的面向8K及5G产业应用的视频编码标准.AVS工作组于2019年3月9日完成第三代AVS视频标准(AVS3)基准档次的制 ...

  10. angular响应式表单笔记

    angular 在开发过程中对于表单的验证 import {ReactiveFormsModule, FormsModule, FormControl, FormGroup, Validators} ...