我正在尝试根据我的需要调整pdf.js(完整版),我只想将初始比例设置为“页面适合”,无论之前的比例如何。所以我尝试修改viewer.js来实现这个目标......
首先忽略DEFAULT_SCALE全局(第27行),似乎初始比例由加载序列根据之前的比例定义。
文档由下面调用的加载函数(第832行)加载,但'scale'参数不设置初始比例......
load: function pdfViewLoad(pdfDocument, scale) {
...
}
尝试在firstPagePromise.then ...函数中设置比例(第903行)也没有效果:
firstPagePromise.then(function(pdfPage) {
scale = 'page-fit';
...
}
还有一个PDFView.currentScale属性,我试图在不同的地方设置它,但这不会影响:
this.currentScale = 'page-fit';
最后,我可以通过将setScale函数调用到onePageRendered.then ...函数(第920行)来设置此比例:
onePageRendered.then(function () {
PDFView.setScale('page-fit', true);
...
}
它可以工作,但是setScale函数然后被调用两次,因为它似乎是第一次由onePageRendered(我不知道在哪里)调用前一个比例(?)。这个解决方案使两个可见的渲染,并不是真的令人满意...
我该怎么办?
答案 0 :(得分:0)
The solution is here,谢谢 Snuffleupagus :
由于初始比例可以通过多种方式设定(来自 浏览器历史记录,首选项,视图历史记录或指定 带有哈希参数的比例),我认为这是唯一的方法 在这些方面强制特定的负荷尺度:
- 将
DEFAULT_SCALE
更改为您想要的内容:https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L27。- 替换:https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L1117-L1121, 用:
醇>this.setScale(DEFAULT_SCALE, true);
答案 1 :(得分:0)
To set default view in 'page-fit' whatever the previous selection, you need to simply change two line in viewer.js file.
Step 1:
change var DEFAULT_SCALE_VALUE = 'auto' to 'page-fit';
Step 2:
change DEFAULT_PREFERENCES object 'showPreviousViewOnLoad' property value
var DEFAULT_PREFERENCES = {
showPreviousViewOnLoad: true to false,//if you set false view didn't load view by previous scale. always load by default scale defined by step 1.
defaultZoomValue: '',
sidebarViewOnLoad: 0,
enableHandToolOnLoad: false,
enableWebGL: false,
pdfBugEnabled: false,
disableRange: false,
disableStream: false,
disableAutoFetch: false,
disableFontFace: false,
disableTextLayer: false,
useOnlyCssZoom: false,
externalLinkTarget: 0,
};
It works fine for me