more work on viewer sync
This commit is contained in:
parent
c5891c9368
commit
60bef6b7ac
@ -59,9 +59,6 @@ export class PdfViewerComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
|
|
||||||
wvDocumentLoadedHandler(): void {
|
wvDocumentLoadedHandler(): void {
|
||||||
this.wvInstance.setFitMode('FitWidth');
|
this.wvInstance.setFitMode('FitWidth');
|
||||||
const displayMode = this.wvInstance.docViewer.getDisplayModeManager().getDisplayMode();
|
|
||||||
displayMode.mode = 'Continuous';
|
|
||||||
this.wvInstance.docViewer.getDisplayModeManager().setDisplayMode(displayMode);
|
|
||||||
this.fileReady.emit();
|
this.fileReady.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -138,7 +135,9 @@ export class PdfViewerComponent implements OnInit, AfterViewInit, OnDestroy {
|
|||||||
'notesPanel',
|
'notesPanel',
|
||||||
'thumbnailControl',
|
'thumbnailControl',
|
||||||
'documentControl',
|
'documentControl',
|
||||||
'ribbons'
|
'ribbons',
|
||||||
|
'rotateClockwiseButton',
|
||||||
|
'rotateCounterClockwiseButton'
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -14,29 +14,40 @@ export class ViewerSyncService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
syncViewers() {
|
syncViewers() {
|
||||||
|
localStorage.clear();
|
||||||
if (this._activeViewer) {
|
if (this._activeViewer) {
|
||||||
const lastScrolledViewer = this._viewers[this._activeViewer];
|
const lastActiveViewer = this._viewers[this._activeViewer];
|
||||||
if (lastScrolledViewer) {
|
if (lastActiveViewer) {
|
||||||
const lastScrolledViewerScrollElement = lastScrolledViewer.docViewer.getScrollViewElement();
|
|
||||||
|
const lastDisplayMode = lastActiveViewer.docViewer.getDisplayModeManager().getDisplayMode().mode;
|
||||||
|
const lastLayoutMode = lastActiveViewer.getLayoutMode();
|
||||||
|
const lastPageNumber = lastActiveViewer.docViewer.getCurrentPage();
|
||||||
|
|
||||||
|
const lastScrolledViewerScrollElement = lastActiveViewer.docViewer.getScrollViewElement();
|
||||||
const lastViewerScrollTop = lastScrolledViewerScrollElement.scrollTop;
|
const lastViewerScrollTop = lastScrolledViewerScrollElement.scrollTop;
|
||||||
const lastViewerScrollLeft = lastScrolledViewerScrollElement.scrollLeft;
|
const lastViewerScrollLeft = lastScrolledViewerScrollElement.scrollLeft;
|
||||||
|
const lastViewerZoom = lastActiveViewer.docViewer.getZoom();
|
||||||
const currentZoom = lastScrolledViewer.docViewer.getZoom();
|
const lastViewerLeftPaneState = lastActiveViewer.isElementOpen('leftPanel');
|
||||||
const isLeftPanelOpen = lastScrolledViewer.isElementOpen('leftPanel');
|
|
||||||
|
|
||||||
for (const key of Object.keys(this._viewers)) {
|
for (const key of Object.keys(this._viewers)) {
|
||||||
if (key !== this._activeViewer) {
|
if (key !== this._activeViewer) {
|
||||||
const instance = this._viewers[key];
|
const instance = this._viewers[key];
|
||||||
|
|
||||||
|
// sync layout and display mode
|
||||||
|
instance.docViewer.setCurrentPage(lastPageNumber);
|
||||||
|
instance.setLayoutMode(lastLayoutMode);
|
||||||
|
const displayMode =instance.docViewer.getDisplayModeManager().getDisplayMode();
|
||||||
|
displayMode.mode = lastDisplayMode;
|
||||||
|
instance.docViewer.getDisplayModeManager().setDisplayMode(displayMode);
|
||||||
// Synchronize zoom - needs to be done before scrolling
|
// Synchronize zoom - needs to be done before scrolling
|
||||||
instance.docViewer.zoomTo(currentZoom);
|
instance.docViewer.zoomTo(lastViewerZoom);
|
||||||
|
|
||||||
// Synchronize scroll
|
// Synchronize scroll
|
||||||
const viewerScrollElement = instance.docViewer.getScrollViewElement();
|
const viewerScrollElement = instance.docViewer.getScrollViewElement();
|
||||||
viewerScrollElement.scrollTo(lastViewerScrollLeft, lastViewerScrollTop);
|
viewerScrollElement.scrollTo(lastViewerScrollLeft, lastViewerScrollTop);
|
||||||
|
|
||||||
// Synchronize left panel
|
// Synchronize left panel
|
||||||
if (isLeftPanelOpen) {
|
if (lastViewerLeftPaneState) {
|
||||||
instance.openElements(['leftPanel']);
|
instance.openElements(['leftPanel']);
|
||||||
} else {
|
} else {
|
||||||
instance.closeElements(['leftPanel']);
|
instance.closeElements(['leftPanel']);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user