<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      pdf.js預覽pdf文件

      使用pdf.js窗口預覽pdf

      一、業務場景

      預覽pdf一般通過瀏覽器自帶的pdf預覽器就可以,但有時候需要窗口預覽或自定義操作,可以使用pdf.js操作

      二、使用方法

      1. 下載安裝

      pdf.js需要構建后使用,我們可以直接下載安裝pdfjs-dist,這是構建好的版本

      npm install pdfjs-dist
      

      這里注意你的環境,新版本使用了可選鏈,空值合并和私有 class 字段/方法等,如果你的瀏覽器或node版本太低,建議下載低版本的pdfjs-dist,或嘗試引入leagcy文件夾下的兼容版本。

      我這里是node12,安裝的是@2.6.347,保險起見同樣引入legacy兼容版本。

      2. 引入使用【vue示例】

      通過循環創建canvas來展示每一頁的內容,需要考慮容器和畫布的縮放比。

      如果出現依賴引入和打包工具沖突的問題,可以手動把文件拷貝出來在html內直接引入,默認名稱也是pdfjsLib。

      <template>
        <div id="app">
          <div class="pdf-container">
            <canvas
              v-for="index in totalPage"
              :key="index"
              :id="`canvas-${index}`"
            ></canvas>
          </div>
        </div>
      </template>
      
      // 路徑再確認下,版本不同路徑可能不同
      import pdfjsLib from 'pdfjs-dist/legacy/build/pdf.min.js'
      
          pdfjsLib
            .getDocument(this.pdfPath) // 你的pdf路徑
            .promise.then((pdfDocument) => {
              this.totalPage = pdfDocument.numPages; // 頁碼
              for (let i = 1; i <= pdfDocument.numPages; i++) {
                pdfDocument.getPage(i).then((pdfPage) => {
                  let viewport = pdfPage.getViewport({scale: 1.0});
                  const containerWidth = document.body.offsetWidth; // 容器寬度
                  let scaleViewport = pdfPage.getViewport({scale: containerWidth / viewport.width});
                  let canvas = document.getElementById(`canvas-${i}`);
                  canvas.width = viewport.width;
                  canvas.height = viewport.height;
                  let ctx = canvas.getContext("2d");
                  let renderTask = pdfPage.render({
                    canvasContext: ctx,
                    viewport: scaleViewport,
                  });
                  return renderTask.promise;
                });
              }
            })
            .catch((err) => {
              console.log(err);
              console.error("PDF加載失敗");
            });
      

      3. 其他問題

      • 可能會出現字體缺失,部分空白問題
      • 可能會出現worker運行目錄的問題
      posted @ 2024-01-07 11:35  lupulus  閱讀(6271)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 成人免费ā片在线观看| 国产精品亚洲二区在线播放| 中文字幕无线码中文字幕免费 | 狠狠干| 广州市| 一本久道中文无码字幕av| 国产一区二区三区亚洲精品| 精品综合一区二区三区四区| 国内不卡不区二区三区| 成在人线av无码免费高潮水老板| 激情综合色五月丁香六月亚洲| 国产一区二区一卡二卡| 国产老肥熟一区二区三区| 自拍偷自拍亚洲一区二区| 色爱综合激情五月激情| 精品少妇爆乳无码aⅴ区| 亚洲一区成人av在线| 思思久99久女女精品| 国产精品无码久久久久AV| bt天堂新版中文在线| 中文字幕日韩一区二区不卡 | 国产在线午夜不卡精品影院| 丰满人妻无码∧v区视频| 国产人妻高清国产拍精品| 好紧好滑好湿好爽免费视频| 亚洲日本韩国欧美云霸高清| 国产精品亚洲二区在线播放| 99久久成人亚洲精品观看| 日韩一卡二卡三卡四卡五卡| 色伦专区97中文字幕| 中文字幕乱码视频32| 久久a级片| 亚洲男人天堂一级黄色片| 国产永久免费高清在线观看| 苍井空一区二区波多野结衣av| 人人妻人人澡人人爽人人精品av| 好吊妞| 久久99日韩国产精品久久99| 国产亚洲精品AA片在线爽| 亚洲人成人网站色www| 国产精品免费看久久久|