在使用pdf.js时,遇到一个问题,预览pdf之后,比如现在在第8页,等再次打开的时候还是在第八页,需要从第一页加载;或者可能有需求直接跳转到某一页,查了些资料发现提供的方案很多,一个好使的都没有,也有可能是我使用不当,反正都是以失败告终。最开始决定直接去读代码,通过源代码来解决这个问题,但是代码量有点大啊,只能另寻他法,后来发现关闭浏览器的时候,重新打开pdf还是从离开的页码加载,所以推测默认的配置应该时保存在localStorage,果然在view.js中发现了设置,localStorage.setItem('pdfjs.history', databaseStr)。

打印了一下存储的内容如下:

{"files":[{"fingerprint":"57f1f29cbad323c87a7921391211253d","sidebarView":0,"page":4,"zoom":"auto","scrollLeft":-17,"scrollTop":752,"rotation":0}]}

ok,现在开始解决问题。

1.展示首页

如果你想每次打开的时候都展示pdf的首页,那么直接注释view.js中的localStorage.setItem('pdfjs.history', databaseStr)即可。

2.跳转指定页

如果你想加载不同的页码,可直接在view.html中增加以下代码:

if(localStorage.getItem('pdfjs.history')){
    if(typeof JSON.parse(localStorage.getItem('pdfjs.history')) === 'object' ){
	    var history = JSON.parse(localStorage.getItem('pdfjs.history'));
		if(history.files && history.files[0]){
            // 跳转指定页码
           this.database.files[0].page = 6;
        }
	    localStorage.setItem('pdfjs.history',JSON.stringify(history));
    }
}

 

GitHub 加速计划 / pd / pdf.js
47.48 K
9.86 K
下载
PDF Reader in JavaScript
最近提交(Master分支:3 个月前 )
18284815 [Editor] Update the disclaimer string in the new alt-text dialog (bug 1911738) 3 个月前
fc602c65 And tweak the css in order to take into account that disclaimer can be on two (or more lines). 3 个月前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐