美文网首页
pdf.js的使用与改造

pdf.js的使用与改造

作者: 宁大通信狗 | 来源:发表于2019-04-03 21:43 被阅读0次

    一、前期准备

    1.1 需求描述

    1.想让各个浏览器能显示服务器存放的PDF文件(主要是手机的浏览器)

    2.想让项目结构如下:lib目录存放pdf.js等依赖文件,src存放要显示的pdf文件

    想要的项目结构

    3.这样我就可以将这个项目放到我网站的任何目录下,比如放到PDF或者别的文件夹下

    PDF目录

    1.2 下载pdf.js项目

    1.官方下载

    点击后会下载zip文件

    2.github下载

    下拉到这里点zip文件下载

    3.下载后将zip解压,可以看到结构如下

    解压后目录结构

    二、开始修改

    2.1 文件移动

    1.新建一个PDF目录,在PDF目录中新建src、lib目录

    2.将web目录里的所有文件(不包括web这个文件夹)放到PDF下的lib目录中

    3.将build这个目录(包括文件夹)放到PDF下的lib目录中

    4.将PDF下的lib里的viewer.html剪切到PDF目录下并重命名为index.html

    5.最终项目结构如下:

    移动文件后目录结构

    2.2 文件内容修改

    1.修改index.html

    原代码

    <link rel="stylesheet" href="viewer.css">
    <link rel="resource" type="application/l10n" href="locale/locale.properties">
    <script src="../build/pdf.js"></script>
    <script src="viewer.js"></script>
    

    修改为

    <link rel="stylesheet" href="lib/viewer.css">
    <link rel="resource" type="application/l10n" href="lib/locale/locale.properties">
    <script src="lib/build/pdf.js"></script>
    <script src="lib/viewer.js"></script>
    

    2.修改viewer.js,目的是为了让其默认在PDF下的src目录中寻找pdf文件

    我们找到这一段代码,在sublime中,按“CTRL+F”后搜索‘search’关键字来定位到这段代码

    var queryString = document.location.search.substring(1);
    var params = (0, _ui_utils.parseQueryString)(queryString);
    file = 'file' in params ? params.file : _app_options.AppOptions.get('defaultUrl');
    

    将上面的最后一行代码修改为

    file = 'file' in params ? "src/"+params.file : _app_options.AppOptions.get('defaultUrl');//相对于index.html的路径
    

    3.继续修改viewer.js,目的是为了防止pdf.worker.js和pdf.js找不到情况

    浏览器报错

    在sublime中用“../build”定位到代码段

    var pdfjsLib = void 0;
    if (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) {
      pdfjsLib = window['pdfjs-dist/build/pdf'];
    } else {
      pdfjsLib = require('../build/pdf.js');
    }
    

    将上面的第5行代码修改为

    pdfjsLib = require('lib/build/pdf.js');//这里的路径是相对index.html而言
    

    继续使用“../build”定位到代码段

    workerSrc: {
        value: '../build/pdf.worker.js',
        kind: OptionKind.WORKER
    }
    

    将第二行代码修改为

    value: 'lib/build/pdf.worker.js',//这里的路径是相对index.html而言
    

    三、测试

    3.1 将修改好的项目放到服务器,这步是必须的。我把index.html、src目录、lib目录放在了我网站的pdfjs目录。并且将测试用的pdf放入到src文件夹中。

    3.2 在本地浏览器输入http://xxx.com/pdfjs/index.html?file=test.pdf

    四、修改后的完整代码地址

    https://github.com/nbucedog/pdfjs

    相关文章

      网友评论

          本文标题:pdf.js的使用与改造

          本文链接:https://www.haomeiwen.com/subject/jfvtiqtx.html