当前位置: 首页 > news >正文

java处理ppt方案详解

需求

需要系统中展示的ppt案例有一个动态展示的效果,也就是要有动画的交互,要求支持浏览器直接打开预览

背景

目前已经实现了前端上传pptx文件,后端解析为png的图片,前端掉接口返回对应的图片,模拟播放ppt的效果

各种尝试实践

1、服务器直接存储pptx文件,浏览器直接打开。
 

谷歌,ie直接下载

Micrisoft Edge会转为在线处理pptx文件的一个网站然后打开预览

且谷歌也有这样一个网站,但是打不开,可能需要连外网

https://view.officeapps.live.com/op/view.aspx?src=你的pptx文件地址&wdOrigin=BROWSELINK

预览效果如下,可以有动态交互效果

尝试本地保存为静态页面,未果,遂弃之

2、将每一个ppt页面都手动转化为html页面

        在将pptx文件转化为一个个html页面后,我发现,页面依然是静态的,也就是说,poi的包不支持去解析pptx文件为html后依旧保持原有交互

3、前端寻找插件,或者自己解析pptx文件

        这里我已经精疲力竭了,好像已经没有什么思路了,找了半天资料,感觉前端也不是不能自己解析,这个留在最后没有办法以后再看吧

4、第三方jar包

        第三方jar包,直接转为html,无法达到动态效果,效果大体会比原来转图片的效果好,部分的字体会有溢出,但是依然是静态的图片组成的页面,部分字体溢出的问题,在编辑的时候尽量不要以字符结尾即可解决

5、继续尝试寻找插件,或jar包

未果

6、将pptx转化为svg

        在经历了千辛万苦之后,我发现是真的无法找到满足我的需求的工具了,我想起了借鉴一下微软的做法,我打开了他们在线转化的网站,发现了他们是一大堆的svg图片加css样式去实现的,想到我们也只是需要一些基本的动态交互效果,感觉确实可行,保留一下

7、将pptx转化为ODP格式

        我还想着有没有哪种格式是浏览器可以识别的,pptx可以转化的,且能保留一定的动态交互效果的格式,查找了半天,看到一个说ODP格式有动态效果,且浏览器可以直接打开,抱着激动的心情,我将pptx文件转化为ODP文件,最后拿浏览器访问时,直接又是下载。(这里备注一下,浏览器在遇到自己无法识别的文件,都会去下载)

8、将pptx文件转化为ppt文件

这个时候有点病急乱投医的感觉了,明知道不会有结果的事,还是尝试了,浏览器打开ppt文件依然是下载

小结

        ppt文件不可以在软件内部直接打开,通过解析后又无法保留原有的交互,.ppt和.pptx文件无法通过转化格式的方式在浏览器上直接打开后还能保存动态交互的,但是借鉴微软浏览器的处理方式,当你打开.ppt或.pptx结尾的文件时,它会有一个在线解析的网址,可以支持你在网页直接打开并且保留一定的交互。所以我自己的系统在处理时也可以参照,将每一个ppt都保存为一个svg图,通过css的样式去达到一个动态交互的效果。具体交互方式看自己需求。
        初步方案预想:PPT文件转存为svg格式通过设置样式的方式去实现动态交互

重点分析

1、样式的嵌入方式(如果在svg里直接插入交互样式,后端需要看看怎么具体去实现)
2、svg的动态交互的通用模版具体的实现方式(后端没办法逐一加不同class)

具体实现

1、后端保存pptx文件为svg格式,保存时连同样式名字一起保存,在对应的config配置表中添加不同样式,返回svg的同时返回需要使用的交互样式
2、前端写多套样式模版,存在后台配置中,通过接口获取,动态拼接在页面上

相关文章:

java处理ppt方案详解

需求 需要系统中展示的ppt案例有一个动态展示的效果,也就是要有动画的交互,要求支持浏览器直接打开预览 背景 目前已经实现了前端上传pptx文件,后端解析为png的图片,前端掉接口返回对应的图片,模拟播放ppt的效果 各种尝…...

鸿蒙4.0.0 安装minitouch

鸿蒙4.0.0 安装minitouch ubuntu 系统 minitouch 地址 https://github.com/DeviceFarmer/minitouch 因为 鸿蒙4.0.0 对应安卓12 API版本31 所以启动 minitouch 需要 STFService 地址 https://github.com/openstf/STFService.apk 到release下载最新的STFService.apk &…...

前端excel带样式导出 exceljs 插件的使用

本来用的xlsx和xlsx-style两个插件&#xff0c;过程一步一个坑&#xff0c;到完全能用要消灭好多bug。这时发现了exceljs&#xff0c;真香&#x1f600; 案例 <!DOCTYPE html> <html><head><meta charset"utf-8" /><meta name"view…...

用GOGS搭建GIT服务器

GOGS官网 Gogs: A painless self-hosted Git service 进入文件所在目录 cd /usr/local/develop 解压文件 tar -xvf gogs_0.13.0_linux_amd64.tar.gz 解压之后 进入gogs 目录 cd gogs 创建几个目录 userdata 存放用户数据 log文件存放进程日志 repositories 仓库根目…...

2024年美赛数学建模E题思路分析 - 财产保险的可持续性

# 1 赛题 问题E&#xff1a;财产保险的可持续性 极端天气事件正成为财产所有者和保险公司面临的危机。“近年来&#xff0c;世界已经遭受了1000多起极端天气事件造成的超过1万亿美元的损失”。[1]2022年&#xff0c;保险业的自然灾害索赔人数“比30年的平均水平增加了115%”。…...

哪种安全数据交换系统,可以满足信创环境要求?

安全数据交换系统是一种专门设计用于在不同网络环境之间安全传输数据的技术解决方案。这类系统确保数据在传输过程中的完整性、机密性和可用性&#xff0c;同时遵守相关的数据保护法规和行业标准。 使用安全数据交换系统的原因主要包括以下几点&#xff1a; 1、数据保护&#…...

OfficeWeb365 Readfile 任意文件读取漏洞

免责声明&#xff1a;文章来源互联网收集整理&#xff0c;请勿利用文章内的相关技术从事非法测试&#xff0c;由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;所产生的一切不良后果与文章作者无关。该…...

机器学习基础、数学统计学概念、模型基础技术名词及相关代码个人举例

1.机器学习基础 &#xff08;1&#xff09;机器学习概述 机器学习是一种人工智能&#xff08;AI&#xff09;的分支&#xff0c;通过使用统计学和计算机科学的技术&#xff0c;使计算机能够从数据中学习并自动改进性能&#xff0c;而无需进行明确的编程。它涉及构建和训练机器…...

小埋的解密游戏的题解

目录 原题描述&#xff1a; 题目描述 输入格式 输出格式 样例 #1 样例输入 #1 样例输出 #1 样例 #2 样例输入 #2 样例输出 #2 提示 主要思路&#xff1a; 代码实现code&#xff1a; 原题描述&#xff1a; 题目描述 小埋最近在玩一个解密游戏&#xff0c;这个游戏…...

idea常用设置

1、内存优化 根据自己电脑本身的内存&#xff0c;对idea安装包里bin目录下的idea64.exe.vmoptions文件进行修改 -server -Xms256m -Xmx2048m -XX:MaxPermSize1024m -XX:ReservedCodeCacheSize256m -ea -Dsun.io.useCanonCachesfalse -Djava.Net.preferIPv4Stacktrue -Djsse.e…...

npm出现 Error: EISDIR: illegal operation on a directory, read

npm出现 Error: EISDIR: illegal operation on a directory, read 一、问题二、解决 一、问题 可能是由于运行了npm config set cafile ""之类的方法,造成了cafile为空 二、解决 文件位于C:\Users\用户名\ 下 找到c盘下的Users下的用户目录&#xff0c;进入找到.n…...

简易计算器的制作(函数指针数组的实践)

个人主页&#xff08;找往期文章包括但不限于本期文章中不懂的知识点&#xff09;&#xff1a; 我要学编程(ಥ_ಥ)-CSDN博客 前期思路&#xff08;菜单的制作等&#xff09;&#xff1a;利用C语言的分支循环少量的函数知识写一个猜数字的小游戏-CSDN博客 计算器的制作其实与游…...

HBase相关面试准备问题

为什么选择HBase 1、海量存储 Hbase适合存储PB级别的海量数据&#xff0c;在PB级别的数&#xff0c;能在几十到几百毫秒内返回数据。这与Hbase的极易扩展性息息相关。正是因为Hbase良好的扩展性&#xff0c;才为海量数据的存储提供了便利。 2、列式存储 这里的列式存储其实说的…...

sklearn实现数据标准化(Standardization)和归一化(Normalization)

标准化&#xff08;Standardization&#xff09; sklearn的标准化过程&#xff0c;即包括Z-Score标准化&#xff0c;也包括0-1标准化&#xff0c;并且即可以通过实用函数来进行标准化处理&#xff0c;同时也可以利用评估器来执行标准化过程。接下来我们分不同功能以的不同实现…...

做技术的应该是没有什么你不会

这句话放在现在很多年轻人的观念来评价&#xff0c;肯定是错的。但小编一直捧为真理&#xff0c;也一直践行着。 我记不得这话可能也是谁给我讲的。 先讲故事吧。 小编刚参加工作是做技术支持&#xff0c;我所在公司是给一些软件开发企业提供智能卡读写机具&#xff0c;并配…...

MySQL进阶45讲【10】MySQL为什么有时候会选错索引?

1 前言 前面我们介绍过索引&#xff0c;在MySQL中一张表其实是可以支持多个索引的。但是&#xff0c;写SQL语句的时候&#xff0c;并没有主动指定使用哪个索引。也就是说&#xff0c;使用哪个索引是由MySQL来确定的。 大家有没有碰到过这种情况&#xff0c;一条本来可以执行得…...

网络安全-端口扫描和服务识别的几种方式

禁止未授权测试&#xff01;&#xff01;&#xff01; 前言 在日常的渗透测试中&#xff0c;我们拿到一个ip或者域名之后&#xff0c;需要做的事情就是搞清楚这台主机上运行的服务有哪些&#xff0c;开放的端口有哪些。如果我们连开放的端口和服务都不知道&#xff0c;下一步针…...

【分布式】雪花算法学习笔记

雪花算法学习笔记 来源 https://pdai.tech/md/algorithm/alg-domain-id-snowflake.html概述 雪花算法是推特开源的分布式ID生成算法&#xff0c;以划分命名空间的方式将64位分割成多个部分&#xff0c;每一个部分代表不同的含义&#xff0c;这种就是将64位划分成不同的段&…...

6.函数表达式 - JS

函数表达式 function (someArgs) { someStatements } function name(someArgs) { someStatements } (someArgs) > { someStatements }函数表达式就是要&#xff0c;在一个表达式中定义一个函数&#xff1b;箭头函数也是一个简洁的函数表达式&#xff1b;执行完函数表达式&a…...

【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】

文章目录 【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】需求方案patchframework【RK3288 Android10 C30 支持sim卡拔掉不弹窗,及热插拔】 需求 由于3288 硬件上的sim卡座不支持热插拔,是没有顶针来识别sim卡是否被拔掉的。所以在sim被拔掉或者松动的时候,会弹窗…...

3大核心能力+2套配置方案:obsidian-i18n终极汉化指南

3大核心能力2套配置方案&#xff1a;obsidian-i18n终极汉化指南 【免费下载链接】obsidian-i18n 项目地址: https://gitcode.com/gh_mirrors/ob/obsidian-i18n 面对全英文的应用界面&#xff0c;你是否曾因语言障碍而错失高效工具&#xff1f;当专业术语晦涩难懂&#…...

Unity零基础入门指南:借助快马AI生成你的第一个可交互3D场景

Unity零基础入门指南&#xff1a;借助快马AI生成你的第一个可交互3D场景 作为一个刚接触Unity的新手&#xff0c;我完全理解那种面对空白项目时的迷茫感。好在最近发现了InsCode(快马)平台&#xff0c;它让我这个编程小白也能快速创建出像模像样的3D交互场景。下面我就分享一下…...

从旋转矩阵到李代数:三维空间刚体运动的速度解析与几何直观

1. 刚体运动的基本概念&#xff1a;从旋转轴到角速度 想象你手里握着一个魔方&#xff0c;当你想让它旋转时&#xff0c;总会下意识地找一个转动轴。这个简单的动作背后&#xff0c;藏着描述三维空间刚体运动的核心数学工具。在机器人控制和计算机视觉领域&#xff0c;我们经常…...

OpenClaw+Qwen3-14b_int4_awq:个人博客自动化更新方案

OpenClawQwen3-14b_int4_awq&#xff1a;个人博客自动化更新方案 1. 为什么需要博客自动化更新 作为一个技术博主&#xff0c;我经常遇到这样的困境&#xff1a;好不容易挤出时间写完一篇技术文章&#xff0c;却因为各种琐事耽误了发布。要么是忘记更新Hexo的front matter&am…...

TEKLauncher:如何通过三重技术架构重新定义《方舟:生存进化》的游戏管理体验

TEKLauncher&#xff1a;如何通过三重技术架构重新定义《方舟&#xff1a;生存进化》的游戏管理体验 【免费下载链接】TEKLauncher Launcher for ARK: Survival Evolved 项目地址: https://gitcode.com/gh_mirrors/te/TEKLauncher TEKLauncher是一个专为《方舟&#xff…...

【嵌入式】第2讲:USB CDC 从“插上电脑”到“出现 COM 口”,枚举过程到底发生了什么

好&#xff0c;进入第 2 讲。 第2讲&#xff1a;USB CDC 从“插上电脑”到“出现 COM 口”&#xff0c;枚举过程到底发生了什么 后面调试时&#xff0c;最常见的问题不是“代码编译不过”&#xff0c;而是&#xff1a; 插上电脑没反应设备管理器里看不到东西有未知设备&…...

WeKnora知识库迁移方案:从其他系统平滑过渡

WeKnora知识库迁移方案&#xff1a;从其他系统平滑过渡 1. 引言 知识库迁移听起来可能很复杂&#xff0c;但其实就像搬家一样&#xff0c;只要提前规划好&#xff0c;整个过程可以很顺利。无论你之前用的是Confluence、MediaWiki还是其他知识管理系统&#xff0c;迁移到WeKno…...

3大核心功能:智慧树网课自动化学习解决方案

3大核心功能&#xff1a;智慧树网课自动化学习解决方案 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 诊断学习痛点 在线教育平台在提供便利的同时&#xff0c;也带来…...

文墨共鸣大模型在网络安全领域的应用:模拟攻击脚本分析与安全报告撰写

文墨共鸣大模型在网络安全领域的应用&#xff1a;模拟攻击脚本分析与安全报告撰写 最近和几个做安全的朋友聊天&#xff0c;他们都在抱怨同一个问题&#xff1a;每天面对海量的告警日志和五花八门的攻击脚本&#xff0c;分析起来耗时费力&#xff0c;写报告更是头疼。技术细节…...

LSM303DLHC驱动开发:磁力计校准与六轴姿态解算

1. LSM303DLHC 姿态感知核心&#xff1a;高精度磁力计与加速度计集成库深度解析LSM303DLHC 是意法半导体&#xff08;STMicroelectronics&#xff09;推出的紧凑型六轴惯性测量单元&#xff08;IMU&#xff09;&#xff0c;集成了三轴加速度计&#xff08;2g/4g/8g 可选量程&am…...