转载:前后端分离项目集成PageOffice——实现在线编辑Word文件的版本控制
说明:
PageOffice本身提供了SaveFilePage的js方法,但是由于该方法不支持代理且不能跨域导致在前后端分离项目中无法使用
功能:实现三个按钮分别保存不同版本的文件
1、PageOffice可以通过input隐藏域给保存方法传递参数,在页面定义一个input隐藏域并通过按钮给隐藏域赋值。
Word.vue页面
<template>
<div class="Word">
<input type="button" value="定稿" @click="SaveWord('定稿')"/>
<input type="button" value="保存模板" @click="SaveWord('模板')"/>
<input type="button" value="保存文件" @click="SaveWord('正式文件')"/>
<input type="hidden" id="SaveVerison" value=""/>
<div style="height: 800px; width: auto" v-html="poHtmlCode" />
</div>
</template>
SaveWord(str){
document.getElementById("SaveVerison").value = str;
document.getElementById("PageOfficeCtrl1").WebSave();
}
2、后端保存文件的方法中获取隐藏域的值(fs.getFormField()之前获取的是Form控件的name,后来改为id了,我用的是5.4.0.3版本获取的是id),通过判断,保存文件到对应版本目录下。fs.getFileExtName()是获取文件后缀名
@RequestMapping("save")
public void save(HttpServletRequest request, HttpServletResponse response) {
FileSaver fs = new FileSaver(request, response);
String SaveVerison = fs.getFormField("SaveVerison");
if(SaveVerison.equals("定稿")){
fs.saveToFile("G:\\doc\\test_doc\\"+SaveVerison+fs.getFileExtName());
}else if(SaveVerison.equals("模板")){
fs.saveToFile("G:\\doc\\template_doc\\"+SaveVerison+fs.getFileExtName());
}else if(SaveVerison.equals("正式文件")){
fs.saveToFile("G:\\doc\\formal_doc\\"+SaveVerison+fs.getFileExtName());
}
fs.close();
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南