欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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.js路由跳轉(zhuǎn)詳解

    vue.js路由跳轉(zhuǎn)詳解

    這篇文章主要為大家詳細(xì)介紹了vue.js路由跳轉(zhuǎn)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • vue單頁(yè)應(yīng)用的內(nèi)存泄露定位和修復(fù)問(wèn)題小結(jié)

    vue單頁(yè)應(yīng)用的內(nèi)存泄露定位和修復(fù)問(wèn)題小結(jié)

    系統(tǒng)進(jìn)程不再用到的內(nèi)存,沒(méi)有及時(shí)釋放,就叫做內(nèi)存泄漏(memory leak)。這篇文章主要介紹了vue單頁(yè)應(yīng)用的內(nèi)存泄露定位和修復(fù),需要的朋友可以參考下
    2019-08-08
  • vue3中setup-script的應(yīng)用實(shí)例

    vue3中setup-script的應(yīng)用實(shí)例

    script-setup是一個(gè)比較有爭(zhēng)議的新特性,作為 setup 函數(shù)的語(yǔ)法糖,褒貶不一,不過(guò)經(jīng)歷了幾次迭代之后,目前在體驗(yàn)上來(lái)說(shuō),感受還是非常棒的,這篇文章主要給大家介紹了關(guān)于vue3中setup-script應(yīng)用的相關(guān)資料,需要的朋友可以參考下
    2022-01-01
  • vue自定義指令實(shí)現(xiàn)僅支持輸入數(shù)字和浮點(diǎn)型的示例

    vue自定義指令實(shí)現(xiàn)僅支持輸入數(shù)字和浮點(diǎn)型的示例

    今天小編就為大家分享一篇vue自定義指令實(shí)現(xiàn)僅支持輸入數(shù)字和浮點(diǎn)型的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-10-10
  • electron踩坑之remote of undefined的解決

    electron踩坑之remote of undefined的解決

    這篇文章主要介紹了electron踩坑之remote of undefined的解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-10-10
  • vue實(shí)現(xiàn)搜索小功能

    vue實(shí)現(xiàn)搜索小功能

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)搜索小功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-11-11
  • Vue開(kāi)發(fā)中常見(jiàn)的套路和技巧總結(jié)

    Vue開(kāi)發(fā)中常見(jiàn)的套路和技巧總結(jié)

    這篇文章主要給大家介紹了關(guān)于Vue開(kāi)發(fā)中常見(jiàn)的套路和技巧的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • vue使用JSEncrypt對(duì)密碼本地存儲(chǔ)時(shí)加解密的實(shí)現(xiàn)

    vue使用JSEncrypt對(duì)密碼本地存儲(chǔ)時(shí)加解密的實(shí)現(xiàn)

    本文主要介紹了vue使用JSEncrypt對(duì)密碼本地存儲(chǔ)時(shí)加解密,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • vue使用Echarts繪制地圖完整步驟

    vue使用Echarts繪制地圖完整步驟

    這篇文章主要給大家介紹了關(guān)于vue使用Echarts繪制地圖的相關(guān)資料,Apache ECharts一個(gè)基于JavaScript的開(kāi)源可視化圖表庫(kù),提供了常規(guī)的折線圖、柱狀圖、散點(diǎn)圖、餅圖、K線圖,用于統(tǒng)計(jì)的盒形圖,需要的朋友可以參考下
    2023-09-09
  • 如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作

    如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作

    這篇文章主要給大家介紹了關(guān)于如何利用VUE監(jiān)聽(tīng)網(wǎng)頁(yè)關(guān)閉并執(zhí)行退出操作的相關(guān)資料,因?yàn)轫?xiàng)目中需求,瀏覽器關(guān)閉時(shí)進(jìn)行一些操作處理,文中通過(guò)代碼示例介紹的非常詳細(xì),需要的朋友可以參考下
    2023-08-08

最新評(píng)論