pdf.js:如何正确设置初始比例?

时间:2014-02-01 15:32:42

标签: javascript pdf mozilla pdf.js

我正在尝试根据我的需要调整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(我不知道在哪里)调用前一个比例(?)。这个解决方案使两个可见的渲染,并不是真的令人满意...

我该怎么办?

2 个答案:

答案 0 :(得分:0)

The solution is here,谢谢 Snuffleupagus

  

由于初始比例可以通过多种方式设定(来自   浏览器历史记录,首选项,视图历史记录或指定   带有哈希参数的比例),我认为这是唯一的方法   在这些方面强制特定的负荷尺度:

     
      
  1. DEFAULT_SCALE更改为您想要的内容:https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L27
  2.   
  3. 替换:https://github.com/mozilla/pdf.js/blob/master/web/viewer.js#L1117-L1121,   用:this.setScale(DEFAULT_SCALE, true);
  4.   

答案 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