最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue使用docx-preview實(shí)現(xiàn)docx文件在線預(yù)覽功能全過(guò)程

 更新時(shí)間:2023年04月13日 11:44:47   作者:PinkM∞n7  
文件在線預(yù)覽是目前移動(dòng)化辦公的一種新趨勢(shì),下面這篇文章主要給大家介紹了關(guān)于vue?docx-preview實(shí)現(xiàn)docx文件在線預(yù)覽功能的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

之前一般做項(xiàng)目進(jìn)行文件瀏覽的時(shí)候基本都是用的window.open+url的形式打開(kāi)文件,進(jìn)行瀏覽操作的,但是這種打開(kāi)方式只能夠在線瀏覽如jpg、png、pdf這類文件,對(duì)于文檔類型docx這種則是用下載的方式打開(kāi)的。這次甲方爸爸不想要下載了,于是就來(lái)使docx-preview這個(gè)在線預(yù)覽組件了。(這個(gè)插件只能夠?qū)崿F(xiàn)docx后綴的文件,doc文件打不開(kāi)滴)

1.下載插件

npm i docx-preview --save
or
yarn add docx-preview

2.導(dǎo)入

import { renderAsync } from 'docx-preview';
 
//一般用這種形式就行了
let docx = requie('docx-preview');
 
//我是vue3項(xiàng)目 報(bào)錯(cuò)require不行 就用的下邊這種了
let docx = import.meta.glob('docx-preview');

3.使用組件

如圖有兩個(gè)文件,設(shè)計(jì)點(diǎn)擊時(shí)傳送文件file 得到如下數(shù)據(jù)

因?yàn)橹吧蟼鲿r(shí)已經(jīng)限定了上傳文件格式,所以通過(guò)fileType判斷,是圖片文件還是docx文檔文件,圖片文件則直接傳url瀏覽,文檔文件則需處理,選擇的是將文件通過(guò)url地址換成以下這種形式進(jìn)行操作

要渲染的組件:

<div ref="childRef" class="childRef"></div>

渲染語(yǔ)法: 

function previewfile(item) {
 
  if (item.fileType == '.docx') {
    nextTick(() => {
      fetch(item.filePath)
        .then((response) => {
          let docData = response.blob(); //將文件轉(zhuǎn)換成bolb形式
 
           //選擇要渲染的元素
          let childRef = document.getElementsByClassName('childRef');
 
           //用docx-preview渲染
          renderAsync(docData, childRef[0]).then((res) => {
            console.log('res---->', res);
          });
        })
        .catch((error) => {
          console.log(error);
        });
    });
  } else {
    ImageUrl.value = toRaw(item).filePath;
  }
}

實(shí)現(xiàn)結(jié)果

這個(gè)組件渲染出來(lái)有自帶的樣式,自己修改修改樣式就行了

更新一下關(guān)于樣式方面的問(wèn)題:

文檔以彈窗形式出現(xiàn)組件代碼如下

<el-dialog v-model="dialogVisible" class="dialogLarge" append-to-body :destroy-on-close="true">
    //此處是彈窗名稱
      <template #header>
        <div class="dialogHeader">
          <div>預(yù)覽</div>
        </div>
      </template>
    //此處是預(yù)覽圖片的Img組件
      <img
        w-full
        :src="dialogImageUrl"
        alt="Preview Image"
        style="height: auto; width: 100%"
        v-show="dialogImageUrl"
      />
    //此處是用于渲染docx文檔的div
      <div ref="childRef" class="childRef"></div>
</el-dialog>

生成效果如圖:

 這個(gè)組件會(huì)自動(dòng)生成docx-wrapper的div盒子,有自帶的樣式

1.修改.docx-wrapper{background:white}去除灰邊

2..docx-wrapper>section.docx{box-shadow:none}去除陰影效果

屏蔽或者用!important設(shè)置section.docx自帶的高度寬度等屬性,得到符合UI要求的樣子

//vue3使用:deep(){}的形式進(jìn)行樣式穿透
//vue2是::v-deep或者/deep/的形式進(jìn)行樣式穿透
 
:deep(.docx-wrapper) {
  background-color: #fff;
  padding: 0;
}
:deep(.docx-wrapper > section.docx) {
  width: 100% !important;
  padding: 0rem !important;
  min-height: auto !important;
  box-shadow: none;
  margin-bottom: 0;
}

總結(jié)

到此這篇關(guān)于vue使用docx-preview實(shí)現(xiàn)docx文件在線預(yù)覽功能的文章就介紹到這了,更多相關(guān)vue實(shí)現(xiàn)docx文件在線預(yù)覽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue組件上使用v-model之單選框

    Vue組件上使用v-model之單選框

    這篇文章主要介紹了Vue組件上使用v-model之單選框,代碼分為子組件內(nèi)容和父組件內(nèi)容,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-10-10
  • vue項(xiàng)目中使用scss的方法步驟

    vue項(xiàng)目中使用scss的方法步驟

    這篇文章主要介紹了vue項(xiàng)目中使用scss的方法步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-05-05
  • element ui loading加載開(kāi)啟與關(guān)閉方式

    element ui loading加載開(kāi)啟與關(guān)閉方式

    這篇文章主要介紹了element ui loading加載開(kāi)啟與關(guān)閉方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • vue 項(xiàng)目中使用Loading組件的示例代碼

    vue 項(xiàng)目中使用Loading組件的示例代碼

    這篇文章主要介紹了vue 項(xiàng)目中使用Loading組件的示例代碼,使用 loding 過(guò)渡數(shù)據(jù)的加載時(shí)間
    2018-08-08
  • 淺析vue給不同環(huán)境配置不同打包命令

    淺析vue給不同環(huán)境配置不同打包命令

    本文分步驟給大家介紹vue給不同環(huán)境配置不同打包命令的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • vue實(shí)現(xiàn).md文件預(yù)覽功能的兩種方法詳解

    vue實(shí)現(xiàn).md文件預(yù)覽功能的兩種方法詳解

    這篇文章主要介紹了Vue預(yù)覽.md文件的兩種方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2025-04-04
  • Vue.js與Flask/Django后端配合方式

    Vue.js與Flask/Django后端配合方式

    在現(xiàn)代Web開(kāi)發(fā)中,Vue.js與Flask或Django配合使用,實(shí)現(xiàn)前后端分離,提高開(kāi)發(fā)效率和應(yīng)用性能,本文介紹了整合Vue.js和Flask/Django的步驟,包括環(huán)境搭建、API編寫(xiě)、項(xiàng)目配置,以及生產(chǎn)部署,此架構(gòu)不僅加快了開(kāi)發(fā)進(jìn)程,還提高了項(xiàng)目的可維護(hù)性和可擴(kuò)展性
    2024-09-09
  • vue3中ref獲取子組件的值代碼示例

    vue3中ref獲取子組件的值代碼示例

    這篇文章主要給大家介紹了關(guān)于vue3中ref獲取子組件值的相關(guān)資料,在Vue3中父組件獲取子組件的值可以通過(guò)使用'ref'和'$refs'來(lái)實(shí)現(xiàn),文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08
  • vue實(shí)現(xiàn)列表倒計(jì)時(shí)

    vue實(shí)現(xiàn)列表倒計(jì)時(shí)

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)列表倒計(jì)時(shí),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • uniapp實(shí)現(xiàn)紅包動(dòng)畫(huà)效果代碼實(shí)例(vue3)

    uniapp實(shí)現(xiàn)紅包動(dòng)畫(huà)效果代碼實(shí)例(vue3)

    uniapp作為一種基于Vue.js的前端框架,實(shí)現(xiàn)了一套代碼多端運(yùn)行的理念,成為了眾多開(kāi)發(fā)者的首選,下面這篇文章主要給大家介紹了關(guān)于uniapp實(shí)現(xiàn)紅包動(dòng)畫(huà)效果的相關(guān)資料,需要的朋友可以參考下
    2024-01-01

最新評(píng)論

将乐县| 邵阳县| 宁远县| 郸城县| 天门市| 苗栗县| 阿拉善盟| 德庆县| 东港市| 涞水县| 界首市| 青川县| 略阳县| 皋兰县| 乐至县| 泸州市| 清镇市| 五华县| 昆山市| 独山县| 瑞金市| 营口市| 桐梓县| 寻乌县| 中超| 监利县| 余江县| 弥渡县| 腾冲县| 汤原县| 隆昌县| 抚松县| 乡城县| 二连浩特市| 张北县| 利川市| 雅江县| 张掖市| 黎城县| 宁德市| 华坪县|