|
|
@ -42,7 +42,6 @@ import { PDFLinkService } from './pdf_link_service'; |
|
|
|
import { PDFOutlineViewer } from './pdf_outline_viewer'; |
|
|
|
import { PDFOutlineViewer } from './pdf_outline_viewer'; |
|
|
|
import { PDFPresentationMode } from './pdf_presentation_mode'; |
|
|
|
import { PDFPresentationMode } from './pdf_presentation_mode'; |
|
|
|
import { PDFThumbnailViewer } from './pdf_thumbnail_viewer'; |
|
|
|
import { PDFThumbnailViewer } from './pdf_thumbnail_viewer'; |
|
|
|
import { Preferences } from './preferences'; |
|
|
|
|
|
|
|
import { SecondaryToolbar } from './secondary_toolbar'; |
|
|
|
import { SecondaryToolbar } from './secondary_toolbar'; |
|
|
|
import { Toolbar } from './toolbar'; |
|
|
|
import { Toolbar } from './toolbar'; |
|
|
|
import { ViewHistory } from './view_history'; |
|
|
|
import { ViewHistory } from './view_history'; |
|
|
@ -75,6 +74,9 @@ var DefaultExternalServices = { |
|
|
|
createDownloadManager: function () { |
|
|
|
createDownloadManager: function () { |
|
|
|
throw new Error('Not implemented: createDownloadManager'); |
|
|
|
throw new Error('Not implemented: createDownloadManager'); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
createPreferences() { |
|
|
|
|
|
|
|
throw new Error('Not implemented: createPreferences'); |
|
|
|
|
|
|
|
}, |
|
|
|
supportsIntegratedFind: false, |
|
|
|
supportsIntegratedFind: false, |
|
|
|
supportsDocumentFonts: true, |
|
|
|
supportsDocumentFonts: true, |
|
|
|
supportsDocumentColors: true, |
|
|
|
supportsDocumentColors: true, |
|
|
@ -117,6 +119,8 @@ var PDFViewerApplication = { |
|
|
|
store: null, |
|
|
|
store: null, |
|
|
|
/** @type {DownloadManager} */ |
|
|
|
/** @type {DownloadManager} */ |
|
|
|
downloadManager: null, |
|
|
|
downloadManager: null, |
|
|
|
|
|
|
|
/** @type {Preferences} */ |
|
|
|
|
|
|
|
preferences: null, |
|
|
|
/** @type {Toolbar} */ |
|
|
|
/** @type {Toolbar} */ |
|
|
|
toolbar: null, |
|
|
|
toolbar: null, |
|
|
|
/** @type {SecondaryToolbar} */ |
|
|
|
/** @type {SecondaryToolbar} */ |
|
|
@ -143,37 +147,34 @@ var PDFViewerApplication = { |
|
|
|
|
|
|
|
|
|
|
|
// called once when the document is loaded
|
|
|
|
// called once when the document is loaded
|
|
|
|
initialize: function pdfViewInitialize(appConfig) { |
|
|
|
initialize: function pdfViewInitialize(appConfig) { |
|
|
|
var self = this; |
|
|
|
this.preferences = this.externalServices.createPreferences(); |
|
|
|
|
|
|
|
|
|
|
|
Preferences.initialize(); |
|
|
|
|
|
|
|
this.preferences = Preferences; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
configure(PDFJS); |
|
|
|
configure(PDFJS); |
|
|
|
this.appConfig = appConfig; |
|
|
|
this.appConfig = appConfig; |
|
|
|
|
|
|
|
|
|
|
|
return this._readPreferences().then(function () { |
|
|
|
return this._readPreferences().then(() => { |
|
|
|
return self._initializeViewerComponents(); |
|
|
|
return this._initializeViewerComponents(); |
|
|
|
}).then(function () { |
|
|
|
}).then(() => { |
|
|
|
// Bind the various event handlers *after* the viewer has been
|
|
|
|
// Bind the various event handlers *after* the viewer has been
|
|
|
|
// initialized, to prevent errors if an event arrives too soon.
|
|
|
|
// initialized, to prevent errors if an event arrives too soon.
|
|
|
|
self.bindEvents(); |
|
|
|
this.bindEvents(); |
|
|
|
self.bindWindowEvents(); |
|
|
|
this.bindWindowEvents(); |
|
|
|
|
|
|
|
|
|
|
|
if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) { |
|
|
|
if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) { |
|
|
|
// For backwards compatibility, we dispatch the 'localized' event on
|
|
|
|
// For backwards compatibility, we dispatch the 'localized' event on
|
|
|
|
// the `eventBus` once the viewer has been initialized.
|
|
|
|
// the `eventBus` once the viewer has been initialized.
|
|
|
|
localized.then(function () { |
|
|
|
localized.then(() => { |
|
|
|
self.eventBus.dispatch('localized'); |
|
|
|
this.eventBus.dispatch('localized'); |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
if (self.isViewerEmbedded && !PDFJS.isExternalLinkTargetSet()) { |
|
|
|
if (this.isViewerEmbedded && !PDFJS.isExternalLinkTargetSet()) { |
|
|
|
// Prevent external links from "replacing" the viewer,
|
|
|
|
// Prevent external links from "replacing" the viewer,
|
|
|
|
// when it's embedded in e.g. an iframe or an object.
|
|
|
|
// when it's embedded in e.g. an iframe or an object.
|
|
|
|
PDFJS.externalLinkTarget = PDFJS.LinkTarget.TOP; |
|
|
|
PDFJS.externalLinkTarget = PDFJS.LinkTarget.TOP; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
self.initialized = true; |
|
|
|
this.initialized = true; |
|
|
|
}); |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
@ -181,74 +182,74 @@ var PDFViewerApplication = { |
|
|
|
* @private |
|
|
|
* @private |
|
|
|
*/ |
|
|
|
*/ |
|
|
|
_readPreferences: function () { |
|
|
|
_readPreferences: function () { |
|
|
|
var self = this; |
|
|
|
var { preferences, viewerPrefs, } = this; |
|
|
|
|
|
|
|
|
|
|
|
return Promise.all([ |
|
|
|
return Promise.all([ |
|
|
|
Preferences.get('enableWebGL').then(function resolved(value) { |
|
|
|
preferences.get('enableWebGL').then(function resolved(value) { |
|
|
|
PDFJS.disableWebGL = !value; |
|
|
|
PDFJS.disableWebGL = !value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('sidebarViewOnLoad').then(function resolved(value) { |
|
|
|
preferences.get('sidebarViewOnLoad').then(function resolved(value) { |
|
|
|
self.viewerPrefs['sidebarViewOnLoad'] = value; |
|
|
|
viewerPrefs['sidebarViewOnLoad'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('pdfBugEnabled').then(function resolved(value) { |
|
|
|
preferences.get('pdfBugEnabled').then(function resolved(value) { |
|
|
|
self.viewerPrefs['pdfBugEnabled'] = value; |
|
|
|
viewerPrefs['pdfBugEnabled'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('showPreviousViewOnLoad').then(function resolved(value) { |
|
|
|
preferences.get('showPreviousViewOnLoad').then(function resolved(value) { |
|
|
|
self.viewerPrefs['showPreviousViewOnLoad'] = value; |
|
|
|
viewerPrefs['showPreviousViewOnLoad'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('defaultZoomValue').then(function resolved(value) { |
|
|
|
preferences.get('defaultZoomValue').then(function resolved(value) { |
|
|
|
self.viewerPrefs['defaultZoomValue'] = value; |
|
|
|
viewerPrefs['defaultZoomValue'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('enhanceTextSelection').then(function resolved(value) { |
|
|
|
preferences.get('enhanceTextSelection').then(function resolved(value) { |
|
|
|
self.viewerPrefs['enhanceTextSelection'] = value; |
|
|
|
viewerPrefs['enhanceTextSelection'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disableTextLayer').then(function resolved(value) { |
|
|
|
preferences.get('disableTextLayer').then(function resolved(value) { |
|
|
|
if (PDFJS.disableTextLayer === true) { |
|
|
|
if (PDFJS.disableTextLayer === true) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
PDFJS.disableTextLayer = value; |
|
|
|
PDFJS.disableTextLayer = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disableRange').then(function resolved(value) { |
|
|
|
preferences.get('disableRange').then(function resolved(value) { |
|
|
|
if (PDFJS.disableRange === true) { |
|
|
|
if (PDFJS.disableRange === true) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
PDFJS.disableRange = value; |
|
|
|
PDFJS.disableRange = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disableStream').then(function resolved(value) { |
|
|
|
preferences.get('disableStream').then(function resolved(value) { |
|
|
|
if (PDFJS.disableStream === true) { |
|
|
|
if (PDFJS.disableStream === true) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
PDFJS.disableStream = value; |
|
|
|
PDFJS.disableStream = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disableAutoFetch').then(function resolved(value) { |
|
|
|
preferences.get('disableAutoFetch').then(function resolved(value) { |
|
|
|
PDFJS.disableAutoFetch = value; |
|
|
|
PDFJS.disableAutoFetch = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disableFontFace').then(function resolved(value) { |
|
|
|
preferences.get('disableFontFace').then(function resolved(value) { |
|
|
|
if (PDFJS.disableFontFace === true) { |
|
|
|
if (PDFJS.disableFontFace === true) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
PDFJS.disableFontFace = value; |
|
|
|
PDFJS.disableFontFace = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('useOnlyCssZoom').then(function resolved(value) { |
|
|
|
preferences.get('useOnlyCssZoom').then(function resolved(value) { |
|
|
|
PDFJS.useOnlyCssZoom = value; |
|
|
|
PDFJS.useOnlyCssZoom = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('externalLinkTarget').then(function resolved(value) { |
|
|
|
preferences.get('externalLinkTarget').then(function resolved(value) { |
|
|
|
if (PDFJS.isExternalLinkTargetSet()) { |
|
|
|
if (PDFJS.isExternalLinkTargetSet()) { |
|
|
|
return; |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
PDFJS.externalLinkTarget = value; |
|
|
|
PDFJS.externalLinkTarget = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('renderer').then(function resolved(value) { |
|
|
|
preferences.get('renderer').then(function resolved(value) { |
|
|
|
self.viewerPrefs['renderer'] = value; |
|
|
|
viewerPrefs['renderer'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('renderInteractiveForms').then(function resolved(value) { |
|
|
|
preferences.get('renderInteractiveForms').then(function resolved(value) { |
|
|
|
self.viewerPrefs['renderInteractiveForms'] = value; |
|
|
|
viewerPrefs['renderInteractiveForms'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('disablePageLabels').then(function resolved(value) { |
|
|
|
preferences.get('disablePageLabels').then(function resolved(value) { |
|
|
|
self.viewerPrefs['disablePageLabels'] = value; |
|
|
|
viewerPrefs['disablePageLabels'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
Preferences.get('enablePrintAutoRotate').then(function resolved(value) { |
|
|
|
preferences.get('enablePrintAutoRotate').then(function resolved(value) { |
|
|
|
self.viewerPrefs['enablePrintAutoRotate'] = value; |
|
|
|
viewerPrefs['enablePrintAutoRotate'] = value; |
|
|
|
}), |
|
|
|
}), |
|
|
|
]).catch(function (reason) { }); |
|
|
|
]).catch(function (reason) { }); |
|
|
|
}, |
|
|
|
}, |
|
|
@ -260,7 +261,7 @@ var PDFViewerApplication = { |
|
|
|
var self = this; |
|
|
|
var self = this; |
|
|
|
var appConfig = this.appConfig; |
|
|
|
var appConfig = this.appConfig; |
|
|
|
|
|
|
|
|
|
|
|
return new Promise(function (resolve, reject) { |
|
|
|
return new Promise((resolve, reject) => { |
|
|
|
var eventBus = appConfig.eventBus || getGlobalEventBus(); |
|
|
|
var eventBus = appConfig.eventBus || getGlobalEventBus(); |
|
|
|
self.eventBus = eventBus; |
|
|
|
self.eventBus = eventBus; |
|
|
|
|
|
|
|
|
|
|
@ -337,8 +338,9 @@ var PDFViewerApplication = { |
|
|
|
self.overlayManager = OverlayManager; |
|
|
|
self.overlayManager = OverlayManager; |
|
|
|
|
|
|
|
|
|
|
|
self.handTool = new HandTool({ |
|
|
|
self.handTool = new HandTool({ |
|
|
|
container: container, |
|
|
|
container, |
|
|
|
eventBus: eventBus, |
|
|
|
eventBus, |
|
|
|
|
|
|
|
preferences: this.preferences, |
|
|
|
}); |
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
self.pdfDocumentProperties = |
|
|
|
self.pdfDocumentProperties = |
|
|
@ -595,12 +597,12 @@ var PDFViewerApplication = { |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.pdfLoadingTask) { |
|
|
|
if (this.pdfLoadingTask) { |
|
|
|
// We need to destroy already opened document.
|
|
|
|
// We need to destroy already opened document.
|
|
|
|
return this.close().then(function () { |
|
|
|
return this.close().then(() => { |
|
|
|
// Reload the preferences if a document was previously opened.
|
|
|
|
// Reload the preferences if a document was previously opened.
|
|
|
|
Preferences.reload(); |
|
|
|
this.preferences.reload(); |
|
|
|
// ... and repeat the open() call.
|
|
|
|
// ... and repeat the open() call.
|
|
|
|
return this.open(file, args); |
|
|
|
return this.open(file, args); |
|
|
|
}.bind(this)); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
var parameters = Object.create(null), scale; |
|
|
|
var parameters = Object.create(null), scale; |
|
|
|