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文档,需要每页一个表格并且表格中需要插入文字.条形码和二维码等信息,页数可控制.具体的效果如下图所示: 可以看到有以下几点是 ...
随机推荐
- [GPT] 如何配置抓包工具以解密HTTPS流量才能看到明文的域名地址
要配置抓包工具以解密HTTPS流量,您需要执行以下步骤: 1. 安装抓包工具:首先,确保您已经安装了支持HTTPS解密的抓包工具,例如Wireshark. 2. 获取SSL证书:抓包工具需要使用目标网 ...
- Java中的多态、抽象类和接口简述
1. 引言 本文对Java编程中的多态.抽象类和接口概念进行了简明扼要的讲解,并对extends和implements进行了辨析. 2. 多态 多态是指所调用的方法只有在运行的时候才可以明确,如下例所 ...
- mac常用
目录 Mac 删除键(Delete) 这三招你会吗?可大幅加快打字速度 Mac软件打开提示:已损坏,无法打开.您应该将它移到废纸娄 怎么解决? 卸载手动安装的软件 如何在Mac上使用Charles进行 ...
- 解决VMware Workstation 与 Device/Credential Guard不兼容
参考文档 https://blog.csdn.net/lizhengze1117/article/details/106566060
- C#TMS系统学习(BaseCity页面)
C#TMS系统代码-基础页面BaseCity学习 本人纯新手,刚进公司跟领导报道,我说我是java全栈,他问我会不会C#,我说大学学过,他说这个TMS系统就给你来管了.外包已经把代码给我了,这几天先把 ...
- vue实现的常见的动画效果
本文包括的动画: zoom-in zoom-in-left zoom-in-right zoom-in-top zoom-in-bottom zoom-in-center-x zoom-in-cent ...
- k8s&dapr开发部署实验(1)服务调用
前置条件 安装docker与dapr: 手把手教你学Dapr - 3. 使用Dapr运行第一个.Net程序 安装k8s dapr 自托管模式运行 新建一个webapi无权限项目 launchSetti ...
- spring boot整合maybatis plus 的 文件生成代码
/** * 代码生成 */public class AutoGenerator_ { public static void main(String[] args) { AutoGenerator ge ...
- 【winform】解决datagridview里放combox,combox不能按下键快速选择的问题
效果图: 一开始,是拖个下拉框到窗体上,用dgv.controls.Add(combox)添加到表格里,在通过表格事件,触发时,改变下拉框的位置和大小,这样做,下拉框是会出现在表格里,但是有问题,不能 ...
- 【源码阅读】消息队列之DoNetMQ的初步了解
这个组件,是一个分布式的组件,好处就是,不怕消息太多了,都挤在一个服务器上,出现服务器内存不够的情况.服务器内存不够用的问题解决了,但是如果消费队列要进行数据库的操作,那么性能瓶颈将出现在数据库上,如 ...