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、前端写多套样式模版,存在后台配置中,通过接口获取,动态拼接在页面上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/663811.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

树莓派Pico W无线开发板蓝牙通信MicroPython编程

内容提要:2023年6月14日,树莓派官方发布了对树莓派Pico W无线开发板(简称Pico W)MicroPython蓝牙功能的支持。本文首先介绍Pico W接口信号及蓝牙通信协议,然后通过Pico W接口信号扩展连接一只LED和一个按键,并给出Pico W蓝牙通信MicroPython编程示例。 一、Pico W接口信号…

华为数通方向HCIP-DataCom H12-821题库(单选题:401-420)

第401题 R1的配置如图所示,此时在R1查看FIB表时,关于目的网段192.168.1.0/24的下跳是以下哪一项? A、10.0.23.3 B、10.0.12.2 C、10.0.23.2 D、10.0.12.1 【答案】A 【答案解析】 该题目考查的是路由的递归查询和 RIB 以及 FIB 的关系。在 RIB 中,静态路由写的是什么,下…

时间序列预测 —— TCN模型

时间序列预测 —— TCN模型 卷积神经网络(Convolutional Neural Network,CNN)在图像处理等领域取得了显著的成就,一般认为在处理时序数据上不如RNN模型,而TCN(Temporal Convolutional Network)…

十分钟上手vue!

Vue 是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。 一 vue.js的导入及使用 vue安装…

PostgreSQL从小白到高手教程 - 第44讲:pg流复制部署

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。 第44讲&#…

AJAX-入门

定义 概念:AJAX是浏览器与服务器进行数据通信的技术 使用 1.先使用axios库,与服务器进行数据通信 1)基于XMLHttpRequest封装、代码简单、月下载量在14亿次 2)Vue、React项目中都会用到axios 2.再学习XMLHttpRequest对象的使用…

高宇辰:打造“π”型人才 | 提升之路系列(七)

导读 为了发挥清华大学多学科优势,搭建跨学科交叉融合平台,创新跨学科交叉培养模式,培养具有大数据思维和应用创新的“π”型人才,由清华大学研究生院、清华大学大数据研究中心及相关院系共同设计组织的“清华大学大数据能力提升项…

ElementUI Form:Upload 上传

ElementUI安装与使用指南 Upload 上传 点击下载learnelementuispringboot项目源码 效果图 el-upload.vue(Upload上传)页面效果图 el-upload.vue代码 import Vue from vue import VueRouter from vue-router import HomeView from ../views/HomeV…

【论文阅读笔记】Taming Transformers for High-Resolution Image Synthesis

Taming Transformers for High-Resolution Image Synthesis 记录前置知识AbstractIntroductionRelated WorkMethodLearning an Effective Codebook of Image Constituents for Use in TransformersLearning the Composition of Images with Transformers条件合成合成高分辨率图…

Interpolator:在Android中方便使用一些常见的CubicBezier贝塞尔曲线动画效果

说明 方便在Android中使用Interpolator一些常见的CubicBezier贝塞尔曲线动画效果。 示意图如下 import android.view.animation.Interpolator import androidx.core.view.animation.PathInterpolatorCompat/*** 参考* android https://yisibl.github.io/cubic-bezier* 实现常…

个人网站如何让搜索引擎收录

当我们花费功夫搭建好个人网站,如何能让搜索引擎搜索到个人网站呢?比如百度,根本百度不到自己网站的内容。这时候就要使用到搜索引擎提供的站点收录功能了,但是点开百度的搜索资源平台,添加自己的站点时,就…

Java/Python/Go不同开发语言基础数据结构和相关操作总结-Map篇

Java/Python/Go不同开发语言基础数据结构和相关操作总结 1. Java1.1 基础操作1.1.1 数据结构和定义方式1.1.2 增加1.1.3 修改1.1.4 查询1.1.5 删除1.1.6 获取总长度1.1.7 按key排序1.1.8 按value排序1.1.9 遍历 1.2 常用其他方法1.2.1 几种数据结构的对比 2. Go2.1基础操作2.1.…

山东淄博刑侦大队利用无人机抓获盗窃团伙

山东淄博刑侦大队利用无人机抓获盗窃团伙 近期,山东淄博临淄区发生多起盗窃案件。通过视频追踪和调查访问,推断临淄区某村可能为嫌疑人藏匿地点。刑侦大队无人机应急小组迅速到达现场,经无人机高空侦查,发现并锁定了嫌疑人的藏匿…

格式化内存卡后,如何找回丢失的监控视频?

随着摄像头的应用越来越广泛,很多监控摄像头采用了内存卡作为存储介质,方便用户存储和查看摄像头拍摄的视频文件。然而,由于各种原因,监控摄像头的内存卡有时会被意外格式化导致重要数据的丢失,给用户带来诸多困扰。 那…

SpringMVC请求和响应

文章目录 1、请求映射路径2、请求参数3、五种类型参数传递3.1、普通参数3.2、POJO类型参数3.3、嵌套POJO类型参数3.4、数组类型参数3.5、集合类型参数 4、json数据传递4.1、传递json对象4.2、传递json对象数组 5、日期类型参数传递6、响应6.1、响应页面6.2、文本数据6.3、json数…

PHP集成开发 -- PhpStorm 2023

PhpStorm 2023是一款强大的PHP集成开发环境(IDE),旨在提高开发人员的生产力和代码质量。以下是关于PhpStorm 2023软件的详细介绍: 首先,PhpStorm 2023提供了丰富的代码编辑功能,包括语法高亮、自动补全、代…

【DDD】学习笔记-代码模型的架构决策

代码模型属于软件架构的一部分,它是设计模型的进化与实现,体现出了代码模块(包)的结构层次。在架构视图中,代码模型甚至会作为其中的一个视图,通过它来展现模块的划分,并定义运行时实体与执行视…

【AudioPolicy To AudioHAL笔记(三)】安卓S上audio_policy_configuration.xml 加载过程分析

安卓S上audio_policy_configuration.xml 加载过程分析 /*****************************************************************************************************************/ 声明: 本博客内容均由https://blog.csdn.net/weixin_47702410原创,转载or引用请注明…

「效果图渲染」效果图与3D影视动画渲染平台

效果图渲染和3D影视动画渲染都是视觉图像渲染的领域应用。效果图渲染主要服务于建筑、室内设计和产品设计等行业,这些领域通常对视觉呈现的精度和细节有较高要求。与之相比,3D影视动画渲染则普遍应用于电影、电视、视频游戏和广告等媒体领域,…

LLM(3) | 自注意力机制 (self-attention mechanisms)

LLM(3) | 自注意力机制 (self-attention mechanisms) self-attention 是 transformer 的基础, 而 LLMs 大语言模型也都是 transformer 模型, 理解 self-attention, 才能理解为什么 LLM 能够处理好上下文关联性。 本篇是对于 Must-Read Starter Guide t…