96SEO 2026-02-20 02:21 19
前端需要上传pptx文件后端保存为图片并将图片地址保存数据库最后大屏展示时显示之前上传的pptx的图片。

需求看上去是简单的简单聊一下不管是使用vue的elementui还是传统的layui都有很好的实现组件这里我们重点不在前端所以不去细说感兴趣的同学可以了解一下。
这里我使用的是最新的依赖大家想要稳定一点可以用4.1.2的版本
--dependencygroupIdorg.apache.poi/groupIdartifactIdpoi/artifactIdversion5.2.0/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi-ooxml/artifactIdversion5.2.0/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdpoi-scratchpad/artifactIdversion5.2.0/version/dependencydependencygroupIdorg.apache.poi/groupIdartifactIdooxml-schemas/artifactIdversion1.4/version/dependency
我们主要用来接受参数然后把参数带到service层去处理业务逻辑就行
RequestMapping(/admin/pheno/material/caseContentPhotoUpload)public
caseContentPhotoUpload(MultipartFile
ResultJson.build(pheContentService.caseContentPhotoUpload(file,request));}
实际的业务代码编写,代码逻辑是比较简单的先获取文件的输入流将文件输入流转化为xmlslideshow()对象这个就是poi的处理pptx文件的工具包了在里面循环操作每一张pptx。
pptx文件也就是xml文件所以是用这个处理的然后就是保存图片了思路就是建一张画布将文件画上去最后保存到对应路径本地数据库啥的。
非常简单。
IMAGE_SCALE
caseContentPhotoUpload(MultipartFile
serverPathrequest.getSession().getServletContext().getRealPath(/);ArrayListObject
(XSLFTextShape)shape;for(XSLFTextParagraph
p){r.setFontFamily(宋体);}}}}String
slide,serverPath,hrStaffSession);outPathUrlList.add(url);}}
ResultService.buildSuccess(outPathUrlList);}
BufferedImage.TYPE_INT_RGB);Graphics2D
img.createGraphics();graphics.setPaint(Color.white);graphics.fill(new
pgHeight));graphics.scale(IMAGE_SCALE,
IMAGE_SCALE);slide.draw(graphics);ByteArrayOutputStream
ByteArrayOutputStream();ImageIO.write(img,
ByteArrayInputStream(bos.toByteArray());MultipartFile
getMultipartFile(input,ppt图片.png);input.close();resultService
fileService.fileUpload(multipartFile,
systemFileVO(SystemFileVO)resultService.getObject();return
不知道是poi对于pptx做的兼容不好还是啥原因总之有很多的问题
1、文字问题pptx使用的都是微软雅黑但是转为图片时文字会有溢出和下坠的变化
所以我从4.1.2的包切到了新版本的5.2.0解决了文字的溢出问题然后我将微软雅黑统一设置成宋体在window上是解决了但是在linux上展现效果又有一定的差异总的来说是解决了。
3、一些图标无法读取当图标是组合式也就是拼接的时候会出现读取不了的情况也只能在写pptx的时候规避一下
感觉在技术的选取上应该再参考一下是否poi是这个需求最好的处理对象是不是还有更好的处理方式。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback