移動端瀏覽器 jquery 獲取 pdf blob文件流 預覽pdf

最近遇到一個需求,一個古早的移動端 juery 項目要求做一個頁面,從接口獲取 pdf 文件流,然后預覽出來

這里使用第三方工具:pdf.js

代碼如下:

// 引入相關文件<script src="../js/pdf.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/pdf.worker.js" type="text/javascript" charset="utf-8"></script>
<script src="../js/jquery.min.js"></script>
<script src="../js/pdfh5.js" type="text/javascript" charset="utf-8"></script>
// 轉化編碼格式
function converData(data) {data = data.replace(/[\n\r]/g, '');var raw = window.atob(data);var rawLength = raw.length;var array = new Uint8Array(new ArrayBuffer(rawLength));for (var i = 0; i < rawLength; i++) {array[i] = raw.charCodeAt(i)}return array
}// 點擊獲取當前標簽的 id 屬性值
$("#contain-wrapper").on("click", ".contain-main", function(e) {var id = $(this).attr("id")const params = {reportDocId: id}$.ajax({xhrFields: {withCredentials: true},crossDomain: true == !(document.all),type: 'POST', // 請求方式url: '接口地址', // 接口地址data: JSON.stringify(params), // 請求參數dataType: 'json', // 返回參數格式responseType: "blob", // 設置響應類型cache: false,processData: false, // 告訴jQuery不要去處理發送的數據contentType: 'application/json;charset=utf-8',success: function (data) {console.log(data);if(data.status != '0') {toast(data.message, 2000);} else {var pdfEntity = data.data; // 獲取文件流var array = converData(pdfEntity); // 轉碼成 base64$("#demo").show()var pdfh5 = new Pdfh5('#pdf-content', {data: array});// 監聽完成事件pdfh5.on("complete", function (status, msg, time) {// 處理插件不隱藏 loadEffect 的問題$(".loadEffect").hide();})}},error: function () {toast('請求失敗', 2000);},complete: function() {isLoading = false;}})
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/167274.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/167274.shtml
英文地址,請注明出處:http://en.pswp.cn/news/167274.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

N_1 驗證密碼

N_1 驗證密碼 題目 設計一個用戶密碼驗證程序&#xff0c;要求密碼輸入只有3次機會&#xff0c;且密碼中不能包含”*”字符。 分析 需要考慮3個問題&#xff1a;驗證次數、特殊字符和正誤密碼判斷&#xff1b;驗證次數需要使用循環&#xff0c;3個問題需要用到分支結構&…

java 系統屬性和環境屬性

Java系統屬性和環境屬性都是與Java應用程序相關的參數&#xff0c;但它們有以下區別&#xff1a; 系統屬性是由Java虛擬機&#xff08;JVM&#xff09;設置的&#xff0c;而環境屬性是由操作系統設置的。 系統屬性是以“-D”開頭的命令行參數傳遞給JVM的&#xff0c;而環境屬性…

深入理解Spring AOP的工作流程

文章目錄 引言什么是AOP&#xff1f;Spring AOP的工作原理1. JDK動態代理2. CGLIB代理 Spring AOP的注解方式Aspect注解EnableAspectJAutoProxy注解 Spring AOP的工作流程拓展應用1. 自定義注解2. 異常處理3. 切面優先級 結論 &#x1f389;深入理解Spring AOP的工作流程 ☆* o…

關于運行軟件程序出現vcruntime140.dll丟失的修復教程-解決方案

vcruntime140.dll是Microsoft Visual C庫文件的一部分&#xff0c;用于支持Windows操作系統上的應用程序。如果找不到或丟失了這個文件&#xff0c;可能會導致某些應用程序無法正常運行。下面是關于vcruntime140.dll丟失的5個修復方法&#xff0c;以及vcruntime140.dll文件屬性…

Python基礎教程之分支結構詳解

文章目錄 一、分支結構二、單分支結構三、雙分支結構四、多分支結構五、嵌套分支結構六、三元表達式七、條件測試關于Python技術儲備一、Python所有方向的學習路線二、Python基礎學習視頻三、精品Python學習書籍四、Python工具包項目源碼合集①Python工具包②Python實戰案例③P…

Elasticsearch基礎優化

分片策略 分片和副本得設計為ES提供支付分布式和故障轉移得特性&#xff0c;但不意味著分片和副本是可以無限分配&#xff0c; 而且索引得分片完成分配后由于索引得路由機制&#xff0c;不能重新修改分片數&#xff08;副本數可以動態修改&#xff09; 一個分片得底層為一個l…

python之pyqt專欄2-項目文件解析

項目結構 在上一篇文章python之pyqt專欄1-環境搭建&#xff0c;創建新的pyqt項目&#xff0c;下面我們來看一下這個項目下的文件。 從下面的文件結構圖可以看到&#xff0c;該項目下有3個文件&#xff0c;untitled.ui,untitled.py 以及main.py。 QtDesigner可以UI界面的方式&am…

Feign接口請求返回異常 no suitable HttpMessageConvert found for response type

問題場景&#xff1a; 后端調用feign接口請求, 接口返回異常, no suitable HttpMessageConvert found for response type 問題描述 報錯異常如下&#xff1a; //根據圖片特征 去查詢人員信息ResultVo<List> personVos ipbdFaceLibPersonApi.queryFacePersonByFeatur…

華為云之SFS彈性文件服務使用體驗

華為云之SFS彈性文件服務使用體驗 一、本次實踐介紹1.1 實踐環境簡介1.2 本次實踐目的 二、SFS彈性文件服務介紹2.1 SFS彈性文件服務簡介2.2 SFS彈性文件服務特點 三、購買ECS彈性云服務器3.1 購買ECS彈性云服務器3.2 查看ECS彈性云服務器狀態3.3 遠程連接ECS3.4 檢查操作系統版…

package.json 中的版本號,符號 ~ 與 ^ 的區別及其他符號的含義

"element-ui": "^2.15.1", 版本號&#xff1a; 2.15.1 對應 x.y.z z &#xff1a;表示一些小的bugfix, 更改z的號&#xff1b;(修復補丁-z)&#xff08;~符號&#xff09; y &#xff1a;表示一些大的版本更改&#xff0c;比如一些API的變化&#xff1b;(…

迭代器模式 (Iterator Pattern)

定義 迭代器模式&#xff08;Iterator Pattern&#xff09;是一種行為型設計模式&#xff0c;用于順序訪問集合對象的元素&#xff0c;而無需知道集合對象的底層表示。迭代器模式將遍歷集合的責任從集合對象轉移到迭代器對象上&#xff0c;這簡化了集合接口和實現&#xff0c;…

計算機應用基礎_錯題集_基礎知識---網絡教育統考工作筆記006

提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 文章目錄 前言一、基礎知識部分錯題集總結前言 計算機應用基礎統考,錯題集總結 一、基礎知識部分 基礎知識部分 2、微處理器芯片的位數即指______。 A.速度 B.字長 C.

Unity Android FireBase bugly報錯查詢

報錯如下圖&#xff0c;注意&#xff0c;標紅的三處 使用的il2cpp和架構是arm64-v8a 那我們就可以根據這些去找對應的符號表&#xff0c;在unity安裝目錄下 Unity2020.3.33f1\Editor\Data\PlaybackEngines\AndroidPlayer\Variations\il2cpp\Release\Symbols\arm64-v8a 找到l…

Tomcat注冊為服務后,如何配置Tomcat內存大小

前提條件&#xff1a;tomcat已經注冊為服務。 1.winR,輸入regedit打開注冊表 2.找到Tomcat注冊表路徑&#xff1a; HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Apache Software Foundation\Procrun 2.0\Tomcat80603.找到jvm內存配置路徑&#xff1a; HKEY_LOCAL_MACHINE\SOFTW…

PTA-6-312 使用多態實現圖書館計算罰金功能

題目&#xff1a; 圖書館提供給讀者借閱服務&#xff0c;包括借閱書籍及音像制品。如果借閱超時需要繳納罰金。對于不同類型的書籍和音像制品罰款規則不同。 成人書籍:允許借閱的時間是21天&#xff0c;每超時1天&#xff0c;需要繳納罰金2元;如果超時3天以上&#xff0c;超出的…

vue中 mixin用法

在Vue.js中&#xff0c;mixin是一種可以在多個組件之間共享Vue組件選項的靈活方式。mixin對象可以包含任何組件選項。當組件使用mixin時&#xff0c;所有mixin對象的選項將被“混合”到該組件的選項中。 使用mixin的一個主要優點是可以在多個組件之間重用和共享代碼。這可以幫…

SSM大學生社團信息管理系統-99953,(免費領取源碼)計算機畢業設計選題開題+程序定制+論文書寫+答辯ppt書寫 包售后 全流程

SSM大學生社團信息管理系統APP 摘 要 隨著科學技術的飛速發展&#xff0c;社會的方方面面、各行各業都在努力與現代的先進技術接軌&#xff0c;通過科技手段來提高自身的優勢&#xff0c;高校當然也不能排除在外。大學生社團信息管理系統APP是以實際運用為開發背景&#xff0c…

CMake中常見的預定義變量

文章目錄 CMake常見的預定義變量CMake variables官方文檔 CMake常見的預定義變量 在 CMake 中&#xff0c;有一些常見的預定義變量&#xff0c;它們提供了有關項目、目錄結構和構建環境的信息。這些變量可用于設置路徑、傳遞參數、以及進行其他與構建過程相關的操作。 以下是…

Rust語言入門教程(五) - 流控制語句

if 表達式 在Rust中&#xff0c; if語句的判斷條件不需要用( )括起來&#xff0c; 它會認為所有在if 和 {之間的表達式就是判斷條件&#xff0c;例如&#xff1a; if num 5 {msg "five"; }判斷條件的表達式必須返回一個bool型的值&#xff0c; 因為Rust是一個不喜…

[C/C++]數據結構 循環隊列

前言: 隊列是一種具有先進先出特性的結構,但是當數據出隊列以后,前面的空間就無法再次利用了,循環隊列就可以解決這個問題 一:概念及結構: 1.循環隊列概念 循環隊列是一種線性數據結構&#xff0c;其操作表現基于 FIFO&#xff08;先進先出&#xff09;原則并且隊尾被連接在隊…