導航:首頁 > 文檔加密 > pdfjs

pdfjs

發布時間:2022-01-30 05:51:17

『壹』 pdf.js 在哪裡設置載入PDF文檔 的路徑,為什麼完全找不到,,

PDFJS.getDocument('path/to/your/file.pdf');

它返回的是一個PDFDocumentLoadingTask

可以在這里查看示例:網頁鏈接

也可以在這里查看API:網頁鏈接

『貳』 pdf.js可以實現lazyload嗎

尊敬的用戶,您好!很高興為您答疑。
這是pdf.js的helloworld樣例:
PDFJS.getDocument('helloworld.pdf').then(function(pdf) {
// Using promise to fetch the page
pdf.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);

//
// Prepare canvas using PDF page dimensions
//
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;

//
// Render PDF page into canvas context
//
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
根據pdf.js的helloworld代碼來看,其應該是支持lazyload的,但是據這段賦值可以看出(canvas.height = viewport.height;canvas.width = viewport.width;)畫布的長寬仍然是需要您手動指定的。當然,一般此類賦值我們可以認為其又一個官方默認值,這個可以從其提供的demo中體現出來。
希望我的回答對您有所幫助,如有疑問,歡迎繼續咨詢我們。

『叄』 如何處理流必須以PDF JS有數據錯誤

你這個問題比較專業,回答起來比較麻煩,我們先來理一理該如何去解決問題,問題是:你是向要將PDF文件進行在線打開,去發現無法將文件進行打開。原因可能是:1.你的PDF文件和電腦起到沖突的原因2.可能是文件在接收或者在下載的時候收到損壞!如果是這個問題的話那就簡單,小編可以教你使用一個方法可以將它解決!1.其實我們可以使用在線PDF轉換器就可以了,不僅可以對它進行在線的閱讀,還可以對它進行其他格式的在線轉換或者PDF文件的編輯!2.我們打開網站之後就可以將文件進行上傳上去,但是要記住,文件大小不要超過2M,然後進行上傳!3.點擊上傳之後我們就可以看到文件,然後我們就可以對文件進行閱讀或者將不足的地方進行編輯,達到完善的結果!以上就是我的個人見解,希望對小夥伴們有所幫助!

『肆』 前台js 如何使用pdf.js預覽pdf文件流(base64)

將pdf流生成pdf文件,然後在將pdf文件使用PDF.js進行查看。
你需要考慮瀏覽器兼容性,低版本瀏覽器可能沒辦法支持。
參照 File API 和URL API(URL.createObjectURL())

『伍』 如何創建pdf的buffer,讓pdf.js實現預覽pdf文件

PDF.js 是基於開放的 HTML5 及 javaScript 技術實現的開源產品。簡單說就是一個 PDF 解析器。運用HTML5JavaScript(即pdf.js僅使用安全的web語言,不包含任何攻擊者可以用的本地代碼塊)的PDF閱讀器pdf.js,直接在標準的HTML頁面上載入和渲染PDF文件, 還可以提高安全性(不需要安裝第三方插件,安全性由瀏覽器保證),瀏覽器所做的安全措施已經為pdf.js提供了安全的運行環境。其對IE和 FireFox瀏覽器的要求是IE9+, FireFox19+。
在線示例: http://jsbin.com/pdfjs-helloworld-v2/1/edit , http://jsbin.com/pdfjs-prevnext-v2/1/edit
源碼:https://github.com/mozilla/pdf.js
官網:http://mozilla.github.io/pdf.js/

pdf.js VS 傳統瀏覽器讀取pdf

一般來說,PDF檔案格式都是在瀏覽器中由外掛程式來描繪,通常是Adobe自己的PDF reader或來自其他供應商的描繪工具,但這些外掛通常無法充分運用PDF的特點,而且由於含有大量的受信任代碼,使得Google Chrome瀏覽器必須運用SandBox沙箱原理,來檢查PDF描繪工具是否遭到未知病毒感染。
使用adobe,必須在本地安裝軟體才能使用,而pdf.js不依賴環境、渲染速度快(測試過,確實很快)、安全性高。

pdf.js渲染PDF文件
pdf.js渲染PDF文件的流程:Fetch pdf (url / buffer) ——> canvas ——> 渲染
如果要深入pdf的渲染,需要去研究pdf.js源代碼。pdf.js可通過pdf文件的地址或pdf數據流獲取pdf,具體實現是調用介面函數 PDFJs.getDoc(url/buffer)將pdf載入html,通過canvas處理, 然後渲染pdf文件。網上給出的都是通過url來獲取pdf的例子,而我在做項目的時候,後台(python)要求是發pdf的數據流給前台,前台接收pdf的buffer,然後通過pdf.js來渲染。當然最初嘗試buffer出現了很多問題,具體問題總結如下:
1)如何通過$.ajax接收後台發給前台的buffer數據;
2)如何將buffer傳給pdf.js來處理(這里我使用了viewer.js, 所以需要考慮的是如何將buffer傳給viewer.js來處理);
3)如何將pdf.js轉換成pdf.js可以接收的buffer格式;
(對應問題解決見代碼注釋)
註:viewer.js是pdf.js的擴展,其將列印、翻頁、縮放等功能進行了實現,且界面非常好看。也就是說如果你引入了viewer.js,pdf的渲染和渲染之後的功能界面都已經幫你實現了,你不用自己去寫界面。

先從官網:http://mozilla.github.io/pdf.js/ 下載代碼,然後使用文件viewer.html , 我的html就是在viewer.html 的基礎上修改的,下面我給出buffer的例子:
<!DOCTYPE html>
<html dir="ltr" mozdisallowselectionprint moznomarginboxes>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="google" content="notranslate">
<title>在線預覽</title>
{% load static %}{% get_static_prefix as STATIC_URL %}
<link href="{{STATIC_URL}}css/preview.css" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="{{STATIC_URL}}pdfjs/web/viewer.css"/>
<script type="text/javascript" src="{{STATIC_URL}}pdfjs/web/compatibility.js"></script>
<link rel="resource" type="application/l10n" href="{{STATIC_URL}}pdfjs/web/locale/locale.properties"/>
<script type="text/javascript" src="{{STATIC_URL}}pdfjs/web/l10n.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}pdfjs/build/pdf.js"></script>
<script type="text/javascript" src="{{STATIC_URL}}pdfjs/web/debugger.js"></script>
<script src="{{STATIC_URL}}js/jquery-1.8.3.js" type="text/javascript"></script>
<script type="text/javascript">

//convertDataURIToBinary()
//不知道什麼原因如果後台直接將pdf的數據流發給前台,得到的是亂碼,將數據轉換成 Uint8Array始終不成功
//所以就讓後台將發送之前的數據流做 了base64編碼發給前台,前台再解碼得到的數據就不是亂碼了。
var BASE64_MARKER = ';base64,';

var preFileId = {{mark}};

//viewer.js全局變數,傳入buffer,回答問題2
var DEFAULT_URL

$(document).ready(function(){
$.ajax({
type:"post",
async: false,
//ajax接收pdf數據流,注意dataType值的設置是否有錯,如果不指定,jQuery將自動根據HTTP包MIME信息返回
//responseXML或responseText . 回答問題1
contentType:"application/pdf;charset=utf-8",
url:"{% url netPan.File.views.browserFuf%}",
data:{
id: preFileId
},
success:function(data){
var pdfAsDataUri = data;
//如果引入了viewer.js , 處理方法
var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
DEFAULT_URL = pdfAsArray;
// 只引入了pdf.js, 未引入viewer.js, 處理方法
// var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
// PDFJS.getDocument(pdfAsArray).then(); 自己寫pdf的處理函數
}
});
});

function convertDataURIToBinary(dataURI) { //編碼轉換,回答問題3
var base64Index = dataURI.indexOf(BASE64_MARKER) + BASE64_MARKER.length;
var base64 = dataURI.substring(base64Index);
var raw = window.atob(base64);
var rawLength = raw.length;

//轉換成pdf.js能直接解析的Uint8Array類型,見pdf.js-4068
var array = new Uint8Array(new ArrayBuffer(rawLength));

for(i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i);
}
return array;
}
</script>

<!--先設置全局變數DEFAULT_URL 的值,所以要後調入viewer.js -->
<script type="text/javascript" src="{{STATIC_URL}}pdfjs/web/viewer.js"></script>
</head>

<body>
省略內容
</body>
</html>

『陸』 請問pdfjs怎麼讓每頁的頂端滾動到控制項頂端時,當前頁碼數才改變

尊敬的用戶,您好!很高興為您答疑。
這個是因為該js插件計算頁面高度的演算法在兼容上存在問題,導致頁面滾動到一半時即識別為底部(頂部)。
希望我的回答對您有所幫助,如有疑問,歡迎繼續咨詢我們。

『柒』 pdf.js 如何預覽本地文件

pdf.js預覽文件必須只能是在伺服器部署的項目路徑下,不能通過修改配置的方式支持本地路徑的文件,否則會有js跨域問題。如果要顯示本地文件,可以折中考慮先做一個上傳功能將文件上傳到伺服器上然後在頁面上展示,這樣基本實現了預覽本地文件。

『捌』 pdf.js的路徑你是在哪裡知道的!

從github下載的源碼包,我用的裡面例子里的viewer.html就是全屏的pdf預覽
pdf.js-master\web\viewer.js
#30 var DEFAULT_URL = 'compressed.tracemonkey-pldi-09.pdf';
這個是PDF的路徑,我改了它,能用了,就沒有再深究
不知道對你有沒有什麼幫助

『玖』 pdf.js 無法在線預覽PDF

你這個問題比較專業,回答起來比較麻煩,我們先來理一理該如何去解決問題,問題是:你是向要將PDF文件進行在線打開,去發現無法將文件進行打開。

原因可能是:

1.你的PDF文件和電腦起到沖突的原因

2.可能是文件在接收或者在下載的時候收到損壞!

如果是這個問題的話那就簡單,小編可以教你使用一個方法可以將它解決!

1.其實我們可以使用在線PDF轉換器就可以了,不僅可以對它進行在線的閱讀,還可以對它進行其他格式的在線轉換或者PDF文件的編輯!

以上就是我的個人見解,希望對小夥伴們有所幫助!

『拾』 pdf.js jspdf 和pdfobject 哪個好

你好

看看他們的主要區別是什麼。關鍵是自己使用一下就知道效果了
你的採納是我前進的動力,還有不懂的地方,請繼續「追問」。
如你還有別的問題,可另外向我求助;答題不易,互相理解,互相幫助。

閱讀全文

與pdfjs相關的資料

熱點內容
半夜解壓有什麼壞處 瀏覽:424
linux代理命令 瀏覽:637
調用tasking的編譯器編譯 瀏覽:291
青檸app是什麼 瀏覽:866
linuxapachephp56 瀏覽:395
安卓手機如何打開eng文件 瀏覽:22
看拉丁電視都用什麼app好 瀏覽:778
什麼是哲學pdf 瀏覽:508
hdfs的三個下載命令 瀏覽:522
java常用的排序演算法 瀏覽:357
51單片機連接adc 瀏覽:859
python命名變數報錯 瀏覽:120
安卓手機如何換windows系統 瀏覽:612
python中的類是什麼 瀏覽:630
我的英雄學院用哪個app可以看 瀏覽:35
excel插入選項卡對象命令 瀏覽:693
python字元全排列 瀏覽:505
824頁大瓜文件pdf 瀏覽:222
朔州ios源碼 瀏覽:251
演算法邏輯電路 瀏覽:943