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

前端實現(xiàn)PDF預覽【vue】

這篇具有很好參考價值的文章主要介紹了前端實現(xiàn)PDF預覽【vue】。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

前言:項目中提出這樣一個需求,在移動端H5頁面預覽pdf功能。pdf文件由后端返回的一個地址,前端實現(xiàn)展示預覽pdf文件

在此僅提供兩種方法:

一、使用iframe標簽通過src屬性直接展示pdf文件

? ? ? ? 坑點:兼容比較差,PC端能正常展示,移動端會出現(xiàn)空白的問題

<iframe src="這里是你的文件地址" height="900px;" width="800px"></iframe>

二、使用第三方插件pdfjs,PC端和移動端都能正常展示

1. 安裝插件:npm i pdfjs-dist

2. 引入插件:

// 以es5形式引入,解決低端瀏覽器兼容性問題
// 插件引入兩種方式:第一種引入如果出現(xiàn)報錯 environment lacks native support… 就改成第二種引入
// 第一種
const PDFJS = require("pdfjs-dist");
// 第二種
const PDFJS = require('pdfjs-dist/es5/build/pdf')

HTML部分:

<div>
	<canvas v-for="page in pdfPages" :key="page" :id="'pdf-canvas' + page" />
</div>

js部分,這里使用的vue2:文章來源地址http://www.zghlxwxcb.cn/news/detail-795176.html

data() {
    return {
		pdfPages: [], // 頁數(shù)
		pdfWidth: '', // 寬度
		pdfSrc: '', // 地址
		pdfDoc: '', // 文檔內容
		pdfScale: 1, // 放大倍數(shù)
		contractUrl: '', // 后端返回的PDF鏈接
		width: 500,
		height: 300,
  }
},

methods: {
	// 加載PDF文檔,url參數(shù)是后端返回的pdf文件地址
    loadFile(url) {
	    const loadingTask = PDFJS.getDocument(url)
		loadingTask.promise.then((pdf) => {
			this.pdfDoc = pdf
			this.pdfPages = pdf.numPages
		    this.$nextTick(() => {
			this.renderPage(1)
		     })
		}).catch((err) => {
			console.log(err, '打印錯誤')
		})
    },

   // 渲染PDF
   renderPage(num) {
        const that = this
		this.pdfDoc.getPage(num).then((page) => {
		const canvas = document.getElementById('pdf-canvas' + num)
		const ctx = canvas.getContext('2d')
		const dpr = window.devicePixelRatio || 1
		const ratio = dpr

		// 屏幕可用寬度,設置viewport為了屏幕適配問題
		const viewport = page.getViewport({scale: screen.availWidth / page.getViewport({ scale: this.pdfScale }).width })

		canvas.width = viewport.width * ratio
		canvas.height = viewport.height * ratio
		canvas.style.width = viewport.width - 30 + 'px'
		canvas.style.height = viewport.height + 'px'
		that.pdfWidth = viewport.width + 'px'
		canvas.style.height = viewport.height + 'px'
		ctx.setTransform(ratio, 0, 0, ratio, 0, 0)
		// 將PDF頁面渲染到canvas上下文中
		const renderContext = {
		    canvasContext: ctx,
		    viewport: viewport
		}
		page.render(renderContext)
			if (this.pdfPages > num) {
				this.renderPage(num + 1)
			}
		})
	},
}

到了這里,關于前端實現(xiàn)PDF預覽【vue】的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

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

領支付寶紅包贊助服務器費用

相關文章

  • 【vue2】純前端實現(xiàn)本地的pdf/word/epub文件預覽

    需求是預覽本地的pdf/word/epub格式的文件,但是搜索后發(fā)現(xiàn)沒有可以直接使用的,格式不同,顯示的方式和效果也都略有不同。 最后還是 分別實現(xiàn)預覽 的功能。 如果只需要預覽pdf/word等格式的話,可以使用的方案:vue-office,支持多種文件(docx、excel、pdf)預覽的vue組件庫,支持

    2024年02月11日
    瀏覽(38)
  • vue項目預覽pdf功能(解決動態(tài)文字無法顯示的問題)

    vue項目預覽pdf功能(解決動態(tài)文字無法顯示的問題)

    最近,因為公司項目需要預覽pdf的功能,開始的時候找了市面上的一些pdf插件,都能用,但是,后面因為pdf變成了需要根據(jù)內容進行變化的,然后,就出現(xiàn)了需要動態(tài)生成的文字不顯示了。換了好多好多的插件,都無法顯示,直接無語了。 (pdf-vue3,pdf.js,vue3-pdfjs, vue - pdf -

    2024年02月12日
    瀏覽(24)
  • Vue使用pdf-lib為文件流添加水印并預覽

    Vue使用pdf-lib為文件流添加水印并預覽

    之前也寫過兩篇預覽pdf的,但是沒有加水印,這是鏈接:Vue使用vue-pdf實現(xiàn)PDF文件預覽,使用pdfobject預覽pdf。這次項目中又要預覽pdf了,要求還要加水印,做的時候又發(fā)現(xiàn)了一種預覽pdf的方式,這種方式我覺的更好一些,并且還有個要求就是添加水印,當然水印后端也是可以加

    2024年02月02日
    瀏覽(27)
  • 前端實現(xiàn)pdf預覽

    前言:項目中之前pdf預覽是客戶端andrio實現(xiàn)的,現(xiàn)在需要前端H5自己實現(xiàn)預覽功能,項目是基于vue的H5項目,記錄一下pdf預覽功能實現(xiàn)的過程和問題 一、利用iframe實現(xiàn)pdf預覽 1、實現(xiàn)過程 將pdf路徑設置給iframe的src屬性 2、遇到的問題 電腦上測試正常,但是安卓端會出現(xiàn)空白頁

    2024年02月13日
    瀏覽(26)
  • 前端實現(xiàn) PDF 預覽的常見方案

    由于在搭建個人博客時,想實現(xiàn)在線預覽 pdf 格式的個人簡歷,經(jīng)過查閱大致有三大類實現(xiàn)方案;本文共涉及以下 5 種實現(xiàn)方案,如下所示: 使用 HTML 標簽 iframe 標簽 embed 標簽 object 標簽 使用第三方插件 PDF.js PDFObject PDF 文件轉化成圖片進行展示 第一類方案: 使用 HTML 標簽

    2024年01月20日
    瀏覽(26)
  • 前端vue3實現(xiàn)本地及在線文件預覽(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

    前端vue3實現(xiàn)本地及在線文件預覽(含pdf/txt/mp3/mp4/docx/xlsx/pptx)

    (一)微軟office免費預覽( 推薦 ) 支持doc/docx/xls/xlsx/ppt/pptx等多種office文件格式的免費預覽 (二)XDOC文檔預覽云服務 ?移動端和PC端無插件預覽PDF、OFD、Word、WPS等多種格式文檔 本地或內網(wǎng)預覽需要借助插件實現(xiàn),pdf、mp3、mp4等主要靠原生標簽或瀏覽器自帶功能,盡量減少

    2024年02月05日
    瀏覽(63)
  • 基于pdfbox實現(xiàn)的pdf添加文字水印工具

    最近有個需求需要給pdf加文字水印,于是開始搜索大法,但是發(fā)現(xiàn)網(wǎng)絡上的代碼基本都是將字體文件直接放在jar包里面。個人強迫癥發(fā)作(手動狗頭),想要像poi一樣直接加載系統(tǒng)字體,于是研究了一下午pdfbox的源代碼,發(fā)現(xiàn) FontFileFinder 類可以實現(xiàn)這個功能。廢話不多說,直

    2023年04月11日
    瀏覽(27)
  • 前端實現(xiàn)pdf,圖片,word文件預覽

    前端實現(xiàn)pdf,圖片,word文件預覽

    需求:實現(xiàn)一個在線預覽pdf、excel、word、圖片等文件的功能。 介紹:支持pdf、xlsx、docx、jpg、png、jpeg。 以下使用Vue3代碼實現(xiàn)所有功能,建議以下的預覽文件標簽可以在外層包裹一層彈窗。 iframe標簽能夠將另一個HTML頁面嵌入到當前頁面中,我們的圖片也能夠使用iframe標簽來

    2024年02月11日
    瀏覽(26)
  • 前端實現(xiàn)PDF預覽:簡單而高效的方法

    PDF是一種常用的文件格式,但在網(wǎng)頁中直接預覽PDF文件可能會帶來一些挑戰(zhàn)。本文將介紹一種簡單而高效的前端方法,以實現(xiàn)PDF文件的預覽。 最簡單的方法是使用iframe標簽來嵌入PDF文件。代碼如下所示: 上述代碼通過設置iframe的src屬性為PDF文件的路徑,將PDF文件嵌入到網(wǎng)頁

    2024年02月05日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領取紅包

二維碼2

領紅包