亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

前端預覽pdf文件流詳細步驟

 更新時間:2023年09月28日 09:48:31   作者:valsedefleurs  
公司最近有這么個需求,在線預覽pdf功能,正好有點時間,稍微整理記錄一下,這篇文章主要給大家介紹了關于前端預覽pdf文件流的相關資料,需要的朋友可以參考下

1. PDF組件選型

通過查找資料,可以找到如下幾種方案,其中最為成熟的方案是vue-pdf

1. iframe 既可以用來瀏覽本地static下的文檔,也可以預覽后端返回的文件流文檔

2. vue-pdf 較為完善的vue預覽pdf的方案

3. vueshowpdf 網絡上找到的一個他人封裝的pdf組件

優(yōu)點

缺點原理

iframe/object/embed

簡單易用,包含了翻頁,打印,縮放等內嵌功能無法禁止打印將pdf作為插件內嵌再這三個HTML標簽內
vueshowpdf樣式簡單清爽,包含翻頁,縮放功能,可以禁止打印在不修改源碼的情況下無法自定義相關樣式,無進度加載提示,加載完成前會出現(xiàn)白屏基于底層pdf.js實現(xiàn)

vue-pdf

樣式組件可自定義,包含加載進度,翻頁,頁內元素可交互等固定寬高的比例,需要將包裹pdf的父容器盡可能調大才能顯示完全基于pdf.js實現(xiàn)

總結下來,

  • 如果只想 簡單在頁面嵌套PDF,使用iframe/object/embed是最好的選擇,它不需要你自己去編寫翻頁組件,不需要去調整樣式,用戶體驗佳。
  • 如果對 樣式沒有定制化  的需求,使用 vueshowpdf 也是非常不錯,彈窗式的UI看起來會更加高大上。
  • 如果對 權限控制,樣式定制需求高,使用 vue-pdf 是最好的選擇,接口和屬性較全,擴展能力強,自由度高。

2. Iframe使用步驟

2.1 使用與邏輯

邏輯:將后端返回的看不懂的文件流,設置成reponseType="arraybuffer",然后讀取到返回的blob,再使用createObjectURL讀取出url即可

2.2 代碼示例

<template>
    <iframe :src="src" frameborder="0" :style="iframeStyle" />
</template>
<script>
import { mapState } from 'vuex'
import { getNodeObjectData } from '@/modules/viewer/apis/service'
export default {
    name: 'pdfPanel',
    props: {
        node: {
            type: Object,
            default: () => {}
        }
    },
    data() {
        return {
            src: ''
        }
    },
    computed: {
        ...mapState({
            innerHeight: (state) => state.viewerStore.setting['innerHeight']
        }),
        iframeStyle() {
            return {
                width: '100%',
                height: `${this.innerHeight - 130}px`
            }
        }
    },
    mounted() {
        return getNodeObjectData({
            meta_id: this.node.id
        })
        .then((res) => {
            const blob = new Blob([res], { type: 'application/pdf' })
            const url = window.URL.createObjectURL(blob)
            this.src = url
        })
    },
    methods: {
        handleFullScreen() {
            window.open(`${this.src}#filename=${this.node.name}`, "_blank")
        }
    }
}
</script>>

2.3 圖文詳解

1. 后端返回的是文件流,如下:

2. 接口請求設置responseType="arraybuffer"

export function getNodeObjectData(params) {
    return axios({
        url: `${apiPrefix}/pdf`,
        method: 'GET',
        params: params,
        responseType: 'arraybuffer'
    })
}

總結 

到此這篇關于前端預覽pdf文件流的文章就介紹到這了,更多相關前端預覽pdf文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • vue3數(shù)組或對象賦值不更新解決方法示例

    vue3數(shù)組或對象賦值不更新解決方法示例

    這篇文章主要為大家介紹了vue3數(shù)組或對象賦值不更新解決方法示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • Vue讀取本地靜態(tài).md并側邊欄導航跳轉、展示.md文件的操作方法

    Vue讀取本地靜態(tài).md并側邊欄導航跳轉、展示.md文件的操作方法

    這篇文章主要介紹了Vue讀取本地靜態(tài).md并側邊欄導航跳轉、展示.md文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-08-08
  • Vue 3集成??礧eb插件實現(xiàn)視頻監(jiān)控功能

    Vue 3集成海康Web插件實現(xiàn)視頻監(jiān)控功能

    本文詳細介紹了如何使用 Vue 3 框架集成??礧eb插件實現(xiàn)視頻監(jiān)控功能,通過定義屬性、事件、變量,以及編寫初始化、播放視頻、處理節(jié)點點擊事件等方法,我們成功實現(xiàn)了視頻監(jiān)控系統(tǒng)的前端部分,感興趣的朋友一起看看吧
    2024-11-11
  • Vue?Vuex搭建vuex環(huán)境及vuex求和案例分享

    Vue?Vuex搭建vuex環(huán)境及vuex求和案例分享

    這篇文章主要介紹了Vue?Vuex搭建vuex環(huán)境及vuex求和案例分享,?Vue?中實現(xiàn)集中式狀態(tài)管理的一個?Vue?插件,對?vue?應用中多個組件的共享狀態(tài)進行集中式的管理,下文相關介紹,需要的朋友可以參考一下
    2022-04-04
  • Element Collapse 折疊面板的使用方法

    Element Collapse 折疊面板的使用方法

    這篇文章主要介紹了Element Collapse 折疊面板的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-07-07
  • element-plus中el-upload組件限制上傳文件類型的方法

    element-plus中el-upload組件限制上傳文件類型的方法

    ?Element Plus 中,el-upload 組件可以通過設置 accept 屬性來限制上傳文件的格式,這篇文章主要介紹了element-plus中el-upload組件限制上傳文件類型,需要的朋友可以參考下
    2024-02-02
  • Vue+Elementui el-tree樹只能選擇子節(jié)點并且支持檢索功能

    Vue+Elementui el-tree樹只能選擇子節(jié)點并且支持檢索功能

    這篇文章給大家介紹了Vue+Element UI el-tree樹只能選擇子節(jié)點并且支持檢索的文章,通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧
    2024-12-12
  • 使用Vue3+ElementPlus前端實現(xiàn)分片上傳的全過程

    使用Vue3+ElementPlus前端實現(xiàn)分片上傳的全過程

    ElementPlus是一套為開發(fā)者、設計師和產品經理準備的基于Vue?3.0的組件庫,提供了配套設計資源,幫助你的網站快速成型,下面這篇文章主要給大家介紹了關于使用Vue3+ElementPlus前端實現(xiàn)分片上傳的相關資料,需要的朋友可以參考下
    2022-11-11
  • Vue中import與@import的區(qū)別及使用場景說明

    Vue中import與@import的區(qū)別及使用場景說明

    這篇文章主要介紹了Vue中import與@import的區(qū)別及使用場景說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 前端Vue2、Vue3和不同版本nuxt的插槽使用詳解

    前端Vue2、Vue3和不同版本nuxt的插槽使用詳解

    這篇文章主要介紹了前端Vue2、Vue3和不同版本nuxt的插槽使用的相關資料,Vue2和Vue3中,插槽機制允許在組件模板中定義占位符,并在使用組件時插入自定義內容,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-02-02

最新評論