解決vue-pdf的簽章不顯示問題記錄
在使用vue-pdf @4.3.0時(shí)發(fā)現(xiàn)上傳一般的普通pdf正常預(yù)覽,但是上傳帶有紅頭文件的和和特殊字體的pdf無(wú)法正常內(nèi)容顯示,文字丟失問題。
1、查看控制臺(tái)報(bào)錯(cuò)信息
2、缺少字體原因
getNumPages(url) { var loadingTask = pdf.createLoadingTask({ url: url, //引入pdf.js字體 cMapUrl: 'https://cdn.jsdelivr.net/npm/pdfjs-dist@4.8.69/cmaps/', cMapPacked: true }); this.url = loadingTask; loadingTask.promise.then((res) => { this.numPages = res.numPages; }) }
3、vue-pdf 是依賴于 pdfjs-dist 庫(kù)的,而它依賴的pdfjs-dist庫(kù)的版本不支持顯示簽章
在 node_modules/pdfjs-dist/es5/build/pdf.worker.js 發(fā)現(xiàn)有這么一段代碼:
if (data.fieldType === 'Sig') { data.fieldValue = null; // _this3.setFlags(_util.AnnotationFlag.HIDDEN); }
其中 _this3.setFlags(_util.AnnotationFlag.HIDDEN)就是隱藏電子簽章,注釋這段代碼去修復(fù)這個(gè)問題了。
4、生產(chǎn)環(huán)境同步去修改,用到另一個(gè)插件 patch-package
它的作用就是打補(bǔ)丁, 當(dāng)某些模塊有bug的時(shí)候, 先在依賴包修改,在執(zhí)行以下命令
npm install patch-package npx patch-package pdfjs-dist
執(zhí)行后會(huì)在項(xiàng)目根目錄生成patches文件
同時(shí)你也要在 package.json 的腳本scripts中添加
"scripts": { ... "postinstall": "patch-package" },
后續(xù)執(zhí)行 npm install 時(shí),會(huì)自動(dòng)為依賴包打補(bǔ)丁
5、worker-loader 的默認(rèn)打包路徑是在 dist 根目錄下,為了統(tǒng)一我們想把它打包到 dist/static/js 目錄下,我們依舊通過更改源碼的方式是設(shè)置路徑。
找到 node_modules/worker-loader/dist/index.js 文件,然后把:
const filename = _loaderUtils2.default.interpolateName(this, options.name || '[hash].worker.js', { context: options.context || this.rootContext || this.options.context, regExp: options.regExp });
改為我們想要的路徑
const filename = _loaderUtils2.default.interpolateName(this, options.name || 'static/js/[hash].worker.js', { context: options.context || this.rootContext || this.options.context, regExp: options.regExp });
最后,再運(yùn)行 npx patch-package worker-loader,生成worker-loader+2.0.0.patch補(bǔ)丁包
到此這篇關(guān)于解決vue-pdf的簽章不顯示問題的文章就介紹到這了,更多相關(guān)vue-pdf簽章不顯示內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Vue+Node.js+WebSocket實(shí)現(xiàn)即時(shí)通訊
本文主要介紹了Vue+Node.js+WebSocket實(shí)現(xiàn)即時(shí)通訊,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-05-05vant steps流程圖的圖標(biāo)使用slot自定義方式
這篇文章主要介紹了vant steps流程圖的圖標(biāo)使用slot自定義方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-06-06詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式
本篇文章主要介紹了詳解使用Vue.Js結(jié)合Jquery Ajax加載數(shù)據(jù)的兩種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01vue element 多圖片組合預(yù)覽的實(shí)現(xiàn)
本文主要介紹了vue element多圖片預(yù)覽實(shí)現(xiàn)的相關(guān)資料,最近的項(xiàng)目中有圖片預(yù)覽的場(chǎng)景,本文就來介紹一下如何使用,感興趣的可以了解一下2023-08-08Vue程序化的事件監(jiān)聽器(實(shí)例方案詳解)
本文通過兩種方案給大家介紹了Vue程序化的事件監(jiān)聽器,每種方案通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2020-01-01Vue中使用Lodop插件實(shí)現(xiàn)打印功能的簡(jiǎn)單方法
這篇文章主要給大家介紹了關(guān)于Vue中使用Lodop插件實(shí)現(xiàn)打印功能的簡(jiǎn)單方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Vue頁(yè)面跳轉(zhuǎn)動(dòng)畫效果的實(shí)現(xiàn)方法
百度了好久都沒辦法實(shí)現(xiàn)vue中一個(gè)頁(yè)面跳到另一個(gè)頁(yè)面,甚至到google上搜索也是沒辦法的,最終還是找了高人親自指導(dǎo),所以下面這篇文章主要給大家介紹了關(guān)于Vue頁(yè)面跳轉(zhuǎn)動(dòng)畫效果的實(shí)現(xiàn)方法,需要的朋友可以參考下2018-09-09