导航:首页 > 文档加密 > 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相关的资料

热点内容
兵器pdf 浏览:923
云服务器怎么限制cpu 浏览:164
学信网用的什么app 浏览:876
linux重启命令apache 浏览:751
半夜解压有什么坏处 浏览:424
linux代理命令 浏览:637
调用tasking的编译器编译 浏览:292
青柠app是什么 浏览:866
linuxapachephp56 浏览:397
安卓手机如何打开eng文件 浏览:24
看拉丁电视都用什么app好 浏览:781
什么是哲学pdf 浏览:509
hdfs的三个下载命令 浏览:525
java常用的排序算法 浏览:359
51单片机连接adc 浏览:861
python命名变量报错 浏览:122
安卓手机如何换windows系统 浏览:614
python中的类是什么 浏览:632
我的英雄学院用哪个app可以看 浏览:37
excel插入选项卡对象命令 浏览:695