一、我们在确定用xdocReport时要确定我们的需求,以下是我的需求:
1.采用docx作为文档模板,在里面定义freeMaker标签变量,最终和java模型结合生成docx文档。
2.采用freeMarker模板引擎(由于它的功能比Velocity强大)。
3.还需要用到xdocReport的转换器,需要把docx查看时转换为pdf.
二、针对以上的需求,我的pom.xml的配置,它的配置含三部分,分别是文档依赖,模板语法引擎依赖、转换器依赖如下:
<!--ms word docx的文档依赖 -->
< dependency >
< groupId > fr.opensagres.xdocreport </ groupId >
< artifactId > fr.opensagres.xdocreport.document.docx </ artifactId >
< version > XDOCREPORT_VERSION </ version >
</ dependency >
<!--ms powerPoint pptx的文档依赖 -->
< dependency >
< groupId > fr.opensagres.xdocreport </ groupId >
< artifactId > fr.opensagres.xdocreport.document.pptx </ artifactId >
< version > XDOCREPORT_VERSION </ version >
</ dependency >
<!--模板引擎依赖 -->
< dependency >
< groupId > fr.opensagres.xdocreport </ groupId >
< artifactId > fr.opensagres.xdocreport.template.freemarker </ artifactId >
< version > XDOCREPORT_VERSION </ version >
</ dependency >
<!--转换器依赖 Apache POI + iText转换docx 2 PDF / XHTML -->
< dependency >
< groupId > fr.opensagres.xdocreport </ groupId >
< artifactId > fr.opensagres.xdocreport.converter.docx.xwpf </ artifactId >
< version > XDOCREPORT_VERSION </ version >
</ dependency >
一、我们在确定用xdocReport时要确定我们的需求,以下是我的需求: 1.采用docx作为文档模板,在里面定义freeMaker标签变量,最终和java模型结合生成docx文档。 2.采用freeMarker模板引擎(由于它的功能比Velocity强大)。 3.还需要用到xdocReport的转换器,需要把docx查看时转换为pdf.二、针对...
如果你要先问我为什么要导出word?那么请你走开,你个杠精!
在完成这个功能时花费了大量的时间查阅资料,发现能满足导出复杂word文档的工具只有x
doc
report
,如果有其他的工具欢迎分享。废话不多说,上菜!
一、导入包
<dependency>
<groupId>fr.opensagres.x
doc
report
</groupId>
<artifactId>fr.opensagres.x
doc
rep.
kkFileView是一款使用
spring
boot
打造的文件文档在线预览项目解决方案,支持
doc
、
docx
、ppt、pptx、xls、xlsx、zip、rar、mp4、mp3以及众多类文本如txt、html、xml、java、properties、sql、js、md、json、conf、ini、vue、php、py、bat、gitignore等文件在线预览。
项目特性:
支持office,
pdf
, cad等办公文档
支持txt,java,php,py,md,js,css等所有纯文本
支持zip,rar,jar,tar,gzip等压缩包
支持jpg,jpeg,png,gif等图片预览(翻转,缩放,镜像)
使用
spring
boot
开发,预览服务搭建部署非常简便
rest接口提供服务,跨平台特性(java,php,python,go,php,....)都支持,应用接入简单方便
抽象预览服务接口,方便
二
次开发,非常方便添加其他类型文件预览支持
ChatGPT接入项目实例
Spring
Boot
是由Pivotal团队提供的全新框架,其设计目的是用来简化新
Spring
应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,
Spring
Boot
致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
ChatGPT(Chatbot Generative Pre-trained Transformer)是一种新型的聊天机器人技术,它可以帮助用户与虚拟助手进行自然语言对话,从而节省时间和解决繁重的任务。ChatGPT使用自然语言处理技术,可以让机器认识自然语言,并分析人类的意图,并根据人类的意图提供相应的回复。ChatGPT可以让机器模仿真实的人类对话,并能智能地回答问题,从而帮助客户解决问题。
java freemarker + word
模板
生成
word 文档 (变量替换,数据的循环,表格数据的循环,以及图片的替换)
1,最近有个需求,动态
生成
Word 文当并供前端下载,网上找了一下,发现基本都是用 word
生成
xml 然后用
模板
替换变量的方式
1.1,这种方式虽然可行,但是
生成
的 xml 是在是太乱了,整理就得整理半天,而且一旦要修改
模板
,那简直就是灾难,而且据说还不兼容 WPS
1.2,所以笔者找到了以下可以直接用 word 文档作为
模板
的方法,这里做以下笔记,以下代码依赖于
spring
boot
实现上传
doc
&
docx
文件格式转html在线预览v2.0pom上传路径工具类
SpringMvc
虚拟路径映射
doc
转html工具类domainservicecontroller前端html效果
由于上一遍文章
spring
boot
实现上传
doc
&
docx
文件格式转
pdf
在线预览使用
doc
uments4j依赖只能在windows服务器(远程API)或者安装了offices实现效果。部署到linux服务器
中
就会转换失败。这篇文章介绍如何解决这个问题。我们可以把
doc
&
import * as fs from 'fs' ;
import { TemplateHandler } from 'easy-template-x' ;
// 1. read template file
const templateFile = fs . readFileSync ( 'myTemplate.
docx
' ) ;
// 2. process the template
const data = {
posts : [
{ author : 'Alon Bar' , text : 'Very important\ntex
一直以来,在线办公系统同时支持领导用手机和电脑对Office文档进行审批、盖章,成为了所有开发者无法逾越的难题。卓正软件开发团队历时三年开发了PageOffice 5.0和MobOffice 5.0产品,突破此难题,为办公系统跨平台在线处理Office文档提供了完美的解决方案。
Word文档在线处理的核心环节,包括:起草文档、领导审批、核稿、领导盖章、正式发文。PageOffice产品支持PC端Word文档在线处理的所有环节;MobOffice产品支持了移动端领导审批和领导盖章的功能。支持PC端和移动端.
在Java
中
生成
PDF
文件可以使用iText库。下面是一个简单的示例程序,使用iText和Apache POI库来读取一个Word
模板
并动态填充参数,
生成
PDF
文件:
```java
import com.itext
pdf
.text.
Doc
ument;
import com.itext
pdf
.text.
pdf
.
Pdf
Writer;
import com.itext
pdf
.tool.xml.XMLWorkerHelper;
import org.apache.poi.xwpf.converter.
pdf
.
Pdf
Converter;
import org.apache.poi.xwpf.converter.
pdf
.
Pdf
Options;
import org.apache.poi.xwpf.usermodel.XWPF
Doc
ument;
import java.io.*;
import java.util.Map;
public class WordTo
Pdf
{
public static void convert(String src, String dest, Map<String, String> params) {
try {
//读取word文档
XWPF
Doc
ument
doc
ument = new XWPF
Doc
ument(new FileInputStream(src));
//替换文档
中
的变量
for (Map.Entry<String, String> entry : params.entrySet()) {
doc
ument.replaceText("${" + entry.getKey() + "}", entry.getValue());
//定义输出流
File outFile = new File(dest);
outFile.getParentFile().mkdirs();
OutputStream out = new FileOutputStream(outFile);
//转换成
pdf
Pdf
Options options =
Pdf
Options.create();
Pdf
Converter.getInstance().convert(
doc
ument, out, options);
doc
ument.close();
} catch (Exception e) {
e.printStackTrace();
使用方法:
```java
Map<String, String> params = new HashMap<>();
params.put("name", "张三");
params.put("age", "25");
WordTo
Pdf
.convert("template.
docx
", "output.
pdf
", params);
在这个例子
中
,template.
docx
是word
模板
文件,output.
pdf
是输出文件,params是需要填充的参数,其
中
key是变量名,value是变量值。
需要注意的是,需要在项目
中
导入iText和Apache POI库。