国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

pdf.js預(yù)覽pdf文件

這篇具有很好參考價(jià)值的文章主要介紹了pdf.js預(yù)覽pdf文件。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

使用pdf.js窗口預(yù)覽pdf

一、業(yè)務(wù)場(chǎng)景

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

二、使用方法

1. 下載安裝

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

npm install pdfjs-dist

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

我這里是node12,安裝的是@2.6.347,保險(xiǎn)起見(jiàn)同樣引入legacy兼容版本。

2. 引入使用【vue示例】

通過(guò)循環(huán)創(chuàng)建canvas來(lái)展示每一頁(yè)的內(nèi)容,需要考慮容器和畫布的縮放比。

如果出現(xiàn)依賴引入和打包工具沖突的問(wèn)題,可以手動(dòng)把文件拷貝出來(lái)在html內(nèi)直接引入,默認(rèn)名稱也是pdfjsLib。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-776988.html

<template>
  <div id="app">
    <div class="pdf-container">
      <canvas
        v-for="index in totalPage"
        :key="index"
        :id="`canvas-${index}`"
      ></canvas>
    </div>
  </div>
</template>

// 路徑再確認(rèn)下,版本不同路徑可能不同
import pdfjsLib from 'pdfjs-dist/legacy/build/pdf.min.js'

    pdfjsLib
      .getDocument(this.pdfPath) // 你的pdf路徑
      .promise.then((pdfDocument) => {
        this.totalPage = pdfDocument.numPages; // 頁(yè)碼
        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. 其他問(wèn)題

  • 可能會(huì)出現(xiàn)字體缺失,部分空白問(wèn)題
  • 可能會(huì)出現(xiàn)worker運(yùn)行目錄的問(wèn)題

到了這里,關(guān)于pdf.js預(yù)覽pdf文件的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • js下載圖片、pdf等文件,無(wú)預(yù)覽

    直接使用window.open()或window.locat.href()下載文件遇到圖片或pdf文件就會(huì)跳轉(zhuǎn)預(yù)覽頁(yè),不能滿足我想要的點(diǎn)擊直接下載文件到本地的需求,嘗試多次,最終通過(guò)以下方法實(shí)現(xiàn)了我的需求。 鑒于后端返回的是文件路徑,首先要將文件url地址轉(zhuǎn)為文件對(duì)象,代碼如下: npm install saveA

    2024年02月13日
    瀏覽(40)
  • js實(shí)現(xiàn)PDF 預(yù)覽和文件下載

    js實(shí)現(xiàn)PDF 預(yù)覽和文件下載

    在開發(fā)過(guò)程中要求對(duì) PDF 類型的發(fā)票提供 預(yù)覽 和 下載 功能, PDF 類型文件的來(lái)源又包括 H5 移動(dòng)端 和 PC 端 ,而針對(duì)這兩個(gè)不同端的處理會(huì)有些許不同,下文會(huì)有所提及。 針對(duì) PDF 預(yù)覽 的文章不在少數(shù),但似乎都沒(méi)有提及可能遇到的問(wèn)題,或是提供對(duì)應(yīng)的具體需求場(chǎng)景下如何

    2024年02月15日
    瀏覽(28)
  • 利用PDF.js在微信小程序里預(yù)覽PDF文件

    在微信小程序可以通過(guò)wx.downloadFile 和 wx.openDocument 兩個(gè)api下載并打開pdf文件。這種方式主要有不少的缺點(diǎn): 1、需要下載才可以查看,且每次打開都需要下載生成一個(gè)臨時(shí)文件,如果PDF文件比較多的話,臨時(shí)文件會(huì)越來(lái)越多,且如果PDF文件比較大的話,打開會(huì)比較慢。 2、在導(dǎo)

    2024年02月03日
    瀏覽(29)
  • 前端js打開pdf文件--文件通過(guò)瀏覽器打開,以pdf形式進(jìn)行預(yù)覽

    通過(guò)點(diǎn)擊button按鈕,觸發(fā) @click=\\\"openPDF(performance_report)\\\"方法,把對(duì)應(yīng)需要展示的pdf傳送到openPDF()方法內(nèi),這里的pdf文件格式必須包括id、name、url。 在這里,performance_report為預(yù)覽的文件:

    2024年02月14日
    瀏覽(35)
  • vue+pdf.js預(yù)覽本地pdf文件(可以復(fù)制文本,滾動(dòng)頁(yè)碼展示)

    vue+pdf.js預(yù)覽本地pdf文件(可以復(fù)制文本,滾動(dòng)頁(yè)碼展示)

    1、安裝pdfjs-dist插件,推薦使用2.0.943這個(gè)版本 2、頁(yè)面中引入使用 3、頁(yè)面標(biāo)簽 3、解析pdf,獲取pdf所有頁(yè)數(shù)據(jù),使用canvas渲染,并使用TextLayerBuilder創(chuàng)建文本層,可以復(fù)制文本信息 在渲染pdf數(shù)據(jù)時(shí),當(dāng)pdf文件很大渲染量很多時(shí),會(huì)導(dǎo)致頁(yè)面卡住,無(wú)法執(zhí)行其他操作;這涉及到

    2024年01月21日
    瀏覽(28)
  • 無(wú)需任何三方庫(kù),在 Next.js 項(xiàng)目在線預(yù)覽 PDF 文件

    無(wú)需任何三方庫(kù),在 Next.js 項(xiàng)目在線預(yù)覽 PDF 文件

    之前在使用Vue和其它框架的時(shí)候,預(yù)覽 PDF 都是使用的 PDFObject 這個(gè)庫(kù),步驟是:下載依賴,然后手動(dòng)封裝一個(gè) PDF 預(yù)覽組件,這個(gè)組件接收本地或在線的pdf地址,然后在頁(yè)面中使用組件的車時(shí)候,通過(guò)路由參數(shù)去獲取目標(biāo)PDF地址。 最近使用 Next.js 重構(gòu)公司官網(wǎng)的時(shí)候,也碰到

    2024年01月21日
    瀏覽(23)
  • 前端(vue)js在線預(yù)覽PDF、Word、Excel、ppt等office文件

    可選參數(shù) pdf=true,word文檔嘗試以pdf方式顯示,默認(rèn)false watermark=水印文本,顯示文本水??;“img:”+圖片url表示圖片水印,如:img:https://view.xdocin.com/demo/wm.png saveable=true,是否允許保存源文件,默認(rèn)false printable=false,是否允許打印,默認(rèn)true ?able=false,是否允許選擇復(fù)制內(nèi)容,

    2024年02月13日
    瀏覽(94)
  • vue或uniapp使用pdf.js預(yù)覽

    vue或uniapp使用pdf.js預(yù)覽

    一、先下載穩(wěn)定版的pdf.js,可以去官網(wǎng)下載??官網(wǎng)下載地址? 或??pdf.js包下載(已配置好,無(wú)需修改) 二、下載好的pdf.js文件放在public下靜態(tài)文件里,?uniapp是放在?static下靜態(tài)文件里 三、使用方式 ? ?1. vue項(xiàng)目?注意路徑? :src=\\\"`static/pdfjs-1.9/web/viewer.html?file=你的pdf路徑 ?2.

    2024年02月13日
    瀏覽(39)
  • vue2 使用pdf.js 實(shí)現(xiàn)pdf預(yù)覽,并可復(fù)制文本

    vue2 使用pdf.js 實(shí)現(xiàn)pdf預(yù)覽,并可復(fù)制文本

    ? ? ? ? 需求:pdf預(yù)覽,并且可以選中pdf的內(nèi)容進(jìn)行復(fù)制。? ? ? ?? ????????在ruoyi的vue前端項(xiàng)目中用到,參考了網(wǎng)上不少文章,因?yàn)榇蟛糠譀](méi)給具體的pdf.js版本,導(dǎo)致運(yùn)行過(guò)程中報(bào)各種api 錯(cuò)誤,經(jīng)過(guò)嘗試以下版本可用,故記錄一下: ? ? ? ? 安裝依賴: ? ? ? ? vue 頁(yè)面

    2024年01月19日
    瀏覽(24)
  • 不使用插件預(yù)覽pdf等類型文件

    前端使用window.open即可 接口代碼如下 如果需要把doc文檔或者excel轉(zhuǎn)為pdf,然后再進(jìn)行預(yù)覽的話需要引入spire.doc.free或者spire.xls.free的jar

    2024年02月16日
    瀏覽(15)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包