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

Vue項目中使用pdfjs-dist實現(xiàn)在線瀏覽PDF文件功能

 更新時間:2025年08月13日 08:53:30   作者:好好好明天會更好  
pdfjs-dist是一個用于在瀏覽器中渲染 PDF 文件的 JavaScript 庫,它能夠?qū)?nbsp;PDF 文件解析并渲染為 HTML5 的 canvas 元素,從而實現(xiàn)跨平臺、無需插件的 PDF 預(yù)覽,本文給大家介紹了Vue項目中如何使用pdfjs-dist實現(xiàn)在線瀏覽PDF文件功能,需要的朋友可以參考下

1. 安裝 pdfjs-dist

首先,通過 npm 安裝 pdfjs-dist

npm install pdfjs-dist@2.5.207 --save

2. 配置 Worker 文件路徑

pdfjs-dist 需要一個 Worker 文件來處理 PDF 的加載和渲染。需要指定 Worker 文件的路徑:

import * as pdfjsLib from 'pdfjs-dist';
import 'pdfjs-dist/build/pdf.worker.entry'; // 確保 worker 文件被引入

pdfjsLib.GlobalWorkerOptions.workerSrc = new URL(
  'pdfjs-dist/build/pdf.worker.min.js',
  import.meta.url
).toString();

3. 創(chuàng)建 PDF 查看器組件

在 Vue 組件中,使用 pdfjs-dist 加載并渲染 PDF 文件:

<template>
  <div>
    <canvas v-for="page in pages" :key="page" :id="`pdf-canvas-${page}`" class="pdf-page" />
  </div>
</template>

<script>
import * as pdfjsLib from 'pdfjs-dist';
import 'pdfjs-dist/build/pdf.worker.entry';

pdfjsLib.GlobalWorkerOptions.workerSrc = new URL(
  'pdfjs-dist/build/pdf.worker.min.js',
  import.meta.url
).toString();

export default {
  data() {
    return {
      pdfUrl: 'http://example.com/path/to/your.pdf', // PDF 文件路徑
      pages: 0, // PDF 總頁數(shù)
    };
  },
  mounted() {
    this.loadPdf();
  },
  methods: {
    async loadPdf() {
      const loadingTask = pdfjsLib.getDocument(this.pdfUrl);
      const pdf = await loadingTask.promise;
      this.pages = pdf.numPages; // 獲取 PDF 總頁數(shù)

      for (let i = 1; i <= this.pages; i++) {
        this.renderPage(pdf, i);
      }
    },
    renderPage(pdf, pageNumber) {
      pdf.getPage(pageNumber).then((page) => {
        const canvas = document.getElementById(`pdf-canvas-${pageNumber}`);
        const context = canvas.getContext('2d');
        const viewport = page.getViewport({ scale: 1.5 }); // 設(shè)置縮放比例
        canvas.width = viewport.width;
        canvas.height = viewport.height;

        const renderContext = {
          canvasContext: context,
          viewport,
        };
        page.render(renderContext);
      });
    },
  },
};
</script>

<style>
.pdf-page {
  border: 1px solid #ccc;
  margin-bottom: 10px;
}
</style>

到此這篇關(guān)于Vue項目中使用pdfjs-dist實現(xiàn)在線瀏覽PDF文件功能的文章就介紹到這了,更多相關(guān)Vue pdfjs-dist在線瀏覽PDF文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題

    關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題

    這篇文章主要介紹了關(guān)于vue項目proxyTable配置和部署服務(wù)器的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-04-04
  • vue中使用swiper輪播圖的正確姿勢(親測有效)

    vue中使用swiper輪播圖的正確姿勢(親測有效)

    最近在用Vue制作移動端項目,碰到了輪播圖的制作,接下來就讓小編一步一步帶大家動作制作吧,下面這篇文章主要給大家介紹了關(guān)于vue中使用swiper輪播圖的正確姿勢,需要的朋友可以參考下
    2022-06-06
  • Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等

    最近在學(xué)Vue和javascript感覺js的好多方法都不太清楚,這里徹底總結(jié)下,這篇文章主要給大家介紹了關(guān)于Vuejs對象常用操作之取對應(yīng)的值、取key和value值、轉(zhuǎn)數(shù)組及合并等的相關(guān)資料,需要的朋友可以參考下
    2024-01-01
  • element中使用formdata進(jìn)行上傳文件的方法

    element中使用formdata進(jìn)行上傳文件的方法

    本文主要介紹了elementUI中使用formdata進(jìn)行上傳文件的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • 同步cookie插件原理及實現(xiàn)示例

    同步cookie插件原理及實現(xiàn)示例

    這篇文章主要為大家介紹了同步cookie插件原理及實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • Vue實例從初始化到掛載的完整流程

    Vue實例從初始化到掛載的完整流程

    本文詳細(xì)解析了Vue實例從初始化到掛載的完整流程,首先通過new Vue()觸發(fā)_init方法進(jìn)行初始化,依次完成配置合并、生命周期/事件/渲染初始化,需要的朋友可以參考下
    2025-12-12
  • Vue使用NPM方式搭建項目

    Vue使用NPM方式搭建項目

    這篇文章主要介紹了Vue項目搭建過程,使用NPM方式搭建的,本文分步驟給大家介紹的非常詳細(xì),具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2018-10-10
  • element-ui如何在table中使用tooltip

    element-ui如何在table中使用tooltip

    這篇文章主要介紹了element-ui如何在table中使用tooltip問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • Vue插槽簡介和使用示例詳解

    Vue插槽簡介和使用示例詳解

    插槽就是子組件中的提供給父組件使用的一個占位符,用<slot></slot>?表示,父組件可以在這個占位符中填充任何模板代碼,如?HTML、組件等,填充的內(nèi)容會替換子組件的<slot></slot>標(biāo)簽,這篇文章主要介紹了Vue插槽的理解和使用,需要的朋友可以參考下
    2023-03-03
  • vue之郵箱、密碼、手機號碼等輸入驗證規(guī)則說明

    vue之郵箱、密碼、手機號碼等輸入驗證規(guī)則說明

    這篇文章主要介紹了vue之郵箱、密碼、手機號碼等輸入驗證規(guī)則說明,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-10-10

最新評論

吉林省| 屏东县| 昌乐县| 西藏| 双峰县| 龙泉市| 临西县| 清远市| 沁源县| 海淀区| 扎兰屯市| 堆龙德庆县| 舟山市| 响水县| 庐江县| 休宁县| 永登县| 甘谷县| 九龙城区| 宜兴市| 盖州市| 聂荣县| 哈尔滨市| 铁岭县| 虎林市| 中西区| 太仓市| 闽清县| 溧水县| 若尔盖县| 玉树县| 盐亭县| 建昌县| 西华县| 久治县| 福安市| 江川县| 溆浦县| 舟山市| 武宣县| 富锦市|