pdf.js是一款开源的pdf文档读取解析插件,据说在HTML5下诞生的,对于主流的浏览器基本都支持。
pdf.js主要包含两个库文件,一个pdf.js和一个pdf.worker.js,,一个负责API解析,一个负责核心解析
程序的结构翻译
build/
pdf.js display layer,显示层采用核心层并且暴露了一个更容易使用的API来渲染PDF文件,并获得其他的资料出文 件。该API基于不同的版本号而不同。
pdf.worker.js core layer core层是PDF解析和解释核心功能,是所有其它层的基础
web/
cmaps/ character maps(required by core) 字符映射(core层需要的资源)
compatibility.js polyfills for missing features Polyfilling 是由 RemySharp提出的一个术语,它是用来描述复制缺少的 API和API功能的行为。
09.pdf test pdf 测试用的pdf文件
debugger.js helpful pdf debugging features
images/ images for the viewer and annotation icons viewer界面的图标
l10n.js localization
locale/ translation files 翻译文件,包含所有支持语言的翻译资源
viewer.css viewer style sheet viewer界面的css
viewer.html viewer html,viewer主界面
viewer.js viewer layer,viewer界面的js,页面参数包括加载的PDF文件路径都在这里设置
在viewer.js中,var DEFAULT_URL 是默认的PDF文件地址,当动态加载文件时,要删除这个字段,在HTML中,
<script type="text/javascript">
var BASE64_MARKER = ';base64,';
var preFileId = "";
var pdfAsDataUri = "";
var DEFAULT_URL
$(document).ready(function () {
Request = GetRequest();
preFileId = Request["id"];
$.ajax({
type: "post",
async: false,
contentType: "application/pdf;charset=utf-8",
url: 读取文件流地址,
success: function (data) {
var pdfAsDataUri = data;
var pdfAsArray = convertDataURIToBinary(pdfAsDataUri);
DEFAULT_URL = pdfAsArray;
}
});
});
function convertDataURIToBinary(dataURI) { //编码转换
var raw = window.atob(dataURI);//这个方法在ie内核下无法正常解析。
var rawLength = raw.length;
//转换成pdf.js能直接解析的Uint8Array类型
var array = new Uint8Array(new ArrayBuffer(rawLength));
for (i = 0; i < rawLength; i++) {
array[i] = raw.charCodeAt(i) & 0xff;
}
return array;
}
</script>
下载pdf.zip的地址:https://pan.baidu.com/s/1EkXSzn7Z4CrutTg4GqeIgw