内容简介:事情是这样的,系统有这样一个需求,有一些单子供客户下载打印,做为凭证,而这些单子一般属于word格式的,里面的排版非常固定,只是上面的内容不同,这就属于word模板的范畴了,目前比较不好的操作word的组件就是aspose了,下面我来说一下它的使用方法。主要使用了word里的域,然后选择“邮件合并”,在“域名”处输入你的word变量名,然后在java代码里为这个变量赋值就可以了把组件放到resource/lib目录下
事情是这样的,系统有这样一个需求,有一些单子供客户下载打印,做为凭证,而这些单子一般属于word格式的,里面的排版非常固定,只是上面的内容不同,这就属于word模板的范畴了,目前比较不好的操作word的组件就是aspose了,下面我来说一下它的使用方法。
word模板
主要使用了word里的域,然后选择“邮件合并”,在“域名”处输入你的word变量名,然后在 java 代码里为这个变量赋值就可以了
添加组件引用
把组件放到resource/lib目录下
<dependency>
<groupId>com.bdyh.common</groupId>
<artifactId>common</artifactId>
<version>0.0.1</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/lib/aspose-words-15.8.0-jdk16.jar</systemPath>
</dependency>
代码生成
aspose组件存在授权问题,没有授权的会有水印出现
private static InputStream license;
private static InputStream fileInput;
public static void generateApproveForm(HttpServletResponse response,
List<CompanyLawyerEducationAddDTO> counterpartDetails) {
// 验证License
if (!getLicense("templates/companyLawyerApprove.docx")) {
return;
}
try {
long old = System.currentTimeMillis();
Document doc = new Document(fileInput);
//主要调用aspose.words的邮件合并接口MailMerge
//3.1 填充单个文本域
String[] Flds = new String[]{"Title", "Name", "URL", "Note"}; //文本域
Object[] Vals = new Object[]{"标题", "测试", "http://test.com", word模板导出"}; //值
doc.getMailMerge().execute(Flds, Vals); //调用接口
response.setHeader("Content-Disposition", "attachment; filename=审批单.pdf");
response.setContentType("application/octet-stream;charset=UTF-8");
OutputStream output = response.getOutputStream();
doc.save(output, SaveFormat.PDF);
output.flush();
output.close();
}
public static boolean getLicense(String templateName) {
boolean result = false;
try {
license = new ClassPathResource("lib/license.xml").getInputStream();
fileInput = new ClassPathResource(templateName).getInputStream();
License aposeLic = new License();
aposeLic.setLicense(license);
result = true;
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
以上模板是最简单的文本域的,如果有兴趣还可以把表格域也放上去,实现列表的输出等。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- ReportLibrary 报表模板库新增 21 张报表模板,加入报表导出功能!
- ReportLibrary 报表模板库新增 21 张报表模板,加入报表导出功能!
- ExcelUtil 3.1.0 发布,新增模板导出功能
- MyExcel 3.6.0 版本发布,支持列表&模板混合导出
- ASP.NET 开源导入导出库Magicodes.IE 导出Pdf教程
- MrDoc 0.5.0 版本发布,优化 EPUB 导出,新增 PDF 导出,支持自定义思维导图
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
人月神话(40周年中文纪念版)
(美) 布鲁克斯(Brooks, F. P.) 著 / UML China翻译组,汪颖 译 / 清华大学出版社 / 2015-4-1 / 68.00元
在软件领域,很少能有像《人月神话》一样具有深远影响力和畅销不衰的著作。Brooks博士为人们管理复杂项目提供了最具洞察力的见解,既有很多发人深省的观点,又有大量软件工程的实践。本书内容来自Brooks博士在IBM公司SYSTEM/360家族和OS/360中的项目管理经验,该项目堪称软件开发项目管理的典范。该书英文原版一经面世,即引起业内人士的强烈反响,后又译为德、法、日、俄、中、韩等多种文字,全球......一起来看看 《人月神话(40周年中文纪念版)》 这本书的介绍吧!