mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-07-24 17:32:15 +00:00
[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:
@@ -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),
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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: [
|
||||
|
@@ -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);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user