- 使用PPTXjs做ppt预览,有完备的代码包,基于jquery
- vue3使用iframe引入用于预览ppt的网页,通过url参数通报必要预览的ppt链接
- 通过网页选择文件上传也可以通过下面的函数把文件转换成链接,实如今文件上传到服务器前就可以预览
- URL.createObjectURL(file);
复制代码
ppt/Index.vue:
- <template>
- <div class="page-container m-ppt-wrap" id="page-contaninder" ref="pageContaninderRef">
- <div>
- <input type="file" @change="handleFileChange" />
- </div>
- <iframe class="m-iframe" :src="iframeUrl"></iframe>
- </div>
- </template>
- <script setup lang="ts">
- import { ref } from "vue";
- console.log(location)
- const iframeUrl = ref(
- `${location.origin}/dist/ppt/index.html?file=${location.origin}/dist/ppt/1.pptx`
- );
- const handleFileChange = (e: any) => {
- let file: any = e.target.files[0];
- let fileUrl = URL.createObjectURL(file);
- let url = `${location.origin}/dist/ppt/index.html?file=${fileUrl}`;
- iframeUrl.value = url;
- };
- </script>
- <style lang="scss" scoped>
- .m-ppt-wrap {
- display: flex;
- flex-direction: column;
- height: 100%;
- }
- .m-iframe {
- width: 100%;
- flex: 1;
- border: none;
- }
- </style>
复制代码
public/ppt:
https://download.csdn.net/download/xutongbao/89819342
https://pptx.js.org/index.html

index.html:
- <!doctype html>
- <html>
- <head>
- <meta charset="utf-8" />
- <meta http-equiv="X-UA-Compatible" content="IE=edge" />
- <title>PPTXjs - Meshesha</title>
- <link rel="stylesheet" href="./css/pptxjs.css" />
- <link rel="stylesheet" href="./css/nv.d3.min.css" />
- <script type="text/javascript" src="./js/jquery-1.11.3.min.js"></script>
- <script type="text/javascript" src="./js/jszip.min.js"></script>
- <script type="text/javascript" src="./js/filereader.js"></script>
- <script type="text/javascript" src="./js/d3.min.js"></script>
- <script type="text/javascript" src="./js/nv.d3.min.js"></script>
- <script type="text/javascript" src="./js/pptxjs.js"></script>
- <script type="text/javascript" src="./js/divs2slides.js"></script>
- <script type="text/javascript" src="./js/jquery.fullscreen-min.js"></script>
- <script type="text/javascript">
- $(function () {
- var oldWidth,
- oldMargin,
- isFullscreenMode = false;
- $("#fullscreen-btn").on("click", function () {
- if (!isFullscreenMode) {
- oldWidth = $("#result .slide").css("width");
- oldMargin = $("#result .slide").css("margin");
- $("#result .slide").css({
- width: "99%",
- margin: "0 auto"
- });
- $("#result").toggleFullScreen();
- isFullscreenMode = true;
- } else {
- $("#result .slide").css({
- width: oldWidth,
- margin: oldMargin
- });
- $("#result").toggleFullScreen();
- isFullscreenMode = false;
- }
- });
- $(document).bind("fullscreenchange", function () {
- if (!$(document).fullScreen()) {
- $("#result .slide").css({
- width: oldWidth,
- margin: oldMargin
- });
- }
- });
- });
- </script>
- <style>
- html,
- body {
- margin: 0;
- padding: 0;
- }
- #warper {
- margin-right: auto;
- margin-left: auto;
- width: 900px;
- }
- </style>
- </head>
- <body>
- <div id="warper">
- <input id="uploadFileInput" type="file" />
- <br /><br />
- <div id="container">
- <div id="result"></div>
- </div>
- </div>
- <script>
- var pptxFileUrl = "http://localhost:5173/dist/ppt/2.pptx";
- //http://localhost:5173/dist/ppt/index.html?file=http://localhost:5173/dist/ppt/1.pptx
- var pptxFileUrlValue = window.location.search.substr(1).split("file=")[1];
- if (pptxFileUrlValue) {
- pptxFileUrl = pptxFileUrlValue;
- }
- $("#result").pptxToHtml({
- pptxFileUrl: pptxFileUrl,
- fileInputId: "uploadFileInput",
- slideMode: false,
- keyBoardShortCut: false,
- slideModeConfig: {
- //on slide mode (slideMode: true)
- first: 1,
- nav: false /** true,false : show or not nav buttons*/,
- navTxtColor: "white" /** color */,
- navNextTxt: "›", //">"
- navPrevTxt: "‹", //"<"
- showPlayPauseBtn: false /** true,false */,
- keyBoardShortCut: false /** true,false */,
- showSlideNum: false /** true,false */,
- showTotalSlideNum: false /** true,false */,
- autoSlide: false /** false or seconds (the pause time between slides) , F8 to active(keyBoardShortCut: true) */,
- randomAutoSlide: false /** true,false ,autoSlide:true */,
- loop: false /** true,false */,
- background: "black" /** false or color*/,
- transition:
- "default" /** transition type: "slid","fade","default","random" , to show transition efects :transitionTime > 0.5 */,
- transitionTime: 1 /** transition time in seconds */
- }
- });
- </script>
- </body>
- </html>
复制代码
人工智能学习网站
https://chat.xutongbao.top
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!qidao123.com:ToB企服之家,中国第一个企服评测及软件市场,开放入驻,技术点评得现金 |