diff --git a/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.ts b/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.ts index eaad7ac1f..991258116 100644 --- a/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.ts +++ b/apps/red-ui/src/app/screens/file/pdf-viewer/pdf-viewer.component.ts @@ -59,9 +59,6 @@ export class PdfViewerComponent implements OnInit, AfterViewInit, OnDestroy { wvDocumentLoadedHandler(): void { this.wvInstance.setFitMode('FitWidth'); - const displayMode = this.wvInstance.docViewer.getDisplayModeManager().getDisplayMode(); - displayMode.mode = 'Continuous'; - this.wvInstance.docViewer.getDisplayModeManager().setDisplayMode(displayMode); this.fileReady.emit(); } @@ -138,7 +135,9 @@ export class PdfViewerComponent implements OnInit, AfterViewInit, OnDestroy { 'notesPanel', 'thumbnailControl', 'documentControl', - 'ribbons' + 'ribbons', + 'rotateClockwiseButton', + 'rotateCounterClockwiseButton' ]); } diff --git a/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts b/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts index be6bb1c63..548b14ca6 100644 --- a/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts +++ b/apps/red-ui/src/app/screens/file/service/viewer-sync.service.ts @@ -14,29 +14,40 @@ export class ViewerSyncService { } syncViewers() { + localStorage.clear(); if (this._activeViewer) { - const lastScrolledViewer = this._viewers[this._activeViewer]; - if (lastScrolledViewer) { - const lastScrolledViewerScrollElement = lastScrolledViewer.docViewer.getScrollViewElement(); + const lastActiveViewer = this._viewers[this._activeViewer]; + if (lastActiveViewer) { + + 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 lastViewerScrollLeft = lastScrolledViewerScrollElement.scrollLeft; - - const currentZoom = lastScrolledViewer.docViewer.getZoom(); - const isLeftPanelOpen = lastScrolledViewer.isElementOpen('leftPanel'); + const lastViewerZoom = lastActiveViewer.docViewer.getZoom(); + const lastViewerLeftPaneState = lastActiveViewer.isElementOpen('leftPanel'); for (const key of Object.keys(this._viewers)) { if (key !== this._activeViewer) { 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 - instance.docViewer.zoomTo(currentZoom); + instance.docViewer.zoomTo(lastViewerZoom); // Synchronize scroll const viewerScrollElement = instance.docViewer.getScrollViewElement(); viewerScrollElement.scrollTo(lastViewerScrollLeft, lastViewerScrollTop); // Synchronize left panel - if (isLeftPanelOpen) { + if (lastViewerLeftPaneState) { instance.openElements(['leftPanel']); } else { instance.closeElements(['leftPanel']);