[ACA-3853] fix use of more recent pdf viewer versions (#6007)

* fix use of more recent pdf viewer versions

* fix unit test with thte new promise
This commit is contained in:
Eugenio Romano
2020-08-15 19:05:38 +01:00
committed by GitHub
parent d5d9e70e60
commit bf72fd6c9e
6 changed files with 38 additions and 49 deletions

View File

@@ -35,7 +35,7 @@ describe('PdfThumbComponent', () => {
id: 'pageId',
getPage: jasmine.createSpy('getPage').and.returnValue(Promise.resolve({
getViewport: () => ({ height: width, width: height }),
render: jasmine.createSpy('render').and.returnValue(Promise.resolve())
render: jasmine.createSpy('render').and.returnValue({ promise: Promise.resolve() })
})),
getWidth: jasmine.createSpy('getWidth').and.returnValue(width),

View File

@@ -30,23 +30,23 @@ export class PdfThumbComponent implements OnInit {
image$: Promise<string>;
constructor(private sanitizer: DomSanitizer) {}
constructor(private sanitizer: DomSanitizer) {
}
ngOnInit() {
this.image$ = this.page.getPage().then((page) => this.getThumb(page));
}
private getThumb(page): Promise<string> {
const viewport = page.getViewport(1);
const viewport = page.getViewport({ scale: 1 });
const canvas = this.getCanvas();
const scale = Math.min((canvas.height / viewport.height), (canvas.width / viewport.width));
return page.render({
canvasContext: canvas.getContext('2d'),
viewport: page.getViewport(scale)
})
.then(() => {
viewport: page.getViewport({ scale: scale })
}).promise.then(() => {
const imageSource = canvas.toDataURL();
return this.sanitizer.bypassSecurityTrustUrl(imageSource);
});
@@ -58,4 +58,5 @@ export class PdfThumbComponent implements OnInit {
canvas.height = this.page.getHeight();
return canvas;
}
}

View File

@@ -49,7 +49,7 @@ describe('PdfThumbListComponent', () => {
pdfDocument: {
getPage: () => Promise.resolve({
getViewport: () => ({ height: 421, width: 335 }),
render: jasmine.createSpy('render').and.returnValue(Promise.resolve())
render: jasmine.createSpy('render').and.returnValue({ promise: Promise.resolve() })
})
},
_pages: [

View File

@@ -103,8 +103,12 @@ export class PdfThumbListComponent implements OnInit, AfterViewInit, OnDestroy {
getPages() {
return this.pdfViewer._pages.map((page) => ({
id: page.id,
getWidth: () => { return this.width; },
getHeight: () => { return this.currentHeight; },
getWidth: () => {
return this.width;
},
getHeight: () => {
return this.currentHeight;
},
getPage: () => this.pdfViewer.pdfDocument.getPage(page.id)
}));
}
@@ -115,7 +119,7 @@ export class PdfThumbListComponent implements OnInit, AfterViewInit, OnDestroy {
}
private calculateHeight(page) {
const viewport = page.getViewport(1);
const viewport = page.getViewport({ scale: 1 });
const pageRatio = viewport.width / viewport.height;
const height = Math.floor(this.width / pageRatio);
@@ -133,7 +137,7 @@ export class PdfThumbListComponent implements OnInit, AfterViewInit, OnDestroy {
const end = Math.ceil(indexByScrollTop) + (itemsInView);
this.translateY = this.itemHeight * Math.ceil(start);
this.virtualHeight = this.itemHeight * this.items.length - this.translateY;
this.virtualHeight = this.itemHeight * this.items.length - this.translateY;
this.renderItems = this.items.slice(start, end);
}