Merge pull request #271 from Alfresco/dev-eromano-262

Dev eromano 262
This commit is contained in:
Mario Romano
2016-06-27 07:07:19 -07:00
committed by GitHub
3 changed files with 55 additions and 2 deletions

View File

@@ -1,4 +1,5 @@
.viewer-pdf-container { .viewer-pdf-container {
overflow: auto;
background: #3E3E3E; background: #3E3E3E;
} }

View File

@@ -35,5 +35,11 @@
<div id="viewer-scale-page-button" class="button-page left" (click)="pageFit()"> <div id="viewer-scale-page-button" class="button-page left" (click)="pageFit()">
<i class="icon material-icons">zoom_out_map</i> <i class="icon material-icons">zoom_out_map</i>
</div> </div>
<div id="viewer-zoom-in-button" class="button-page left" (click)="zoomIn()">
<i class="icon material-icons">zoom_in</i>
</div>
<div id="viewer-zoom-out-button" class="button-page left" (click)="zoomOut()">
<i class="icon material-icons">zoom_out</i>
</div>
</div> </div>
<!-- Command toolbar end --> <!-- Command toolbar end -->

View File

@@ -45,6 +45,9 @@ export class PdfViewerComponent {
currentScale: number; currentScale: number;
MAX_AUTO_SCALE: number = 1.25; MAX_AUTO_SCALE: number = 1.25;
DEFAULT_SCALE_DELTA: number = 1.1;
MIN_SCALE: number = 0.25;
MAX_SCALE: number = 10.0;
ngOnChanges(changes) { ngOnChanges(changes) {
if (!this.urlFile) { if (!this.urlFile) {
@@ -74,6 +77,7 @@ export class PdfViewerComponent {
/** /**
* return the PDFJS global object (exist to facilitate the mock of PDFJS in the test) * return the PDFJS global object (exist to facilitate the mock of PDFJS in the test)
*
* @returns {PDFJS} * @returns {PDFJS}
*/ */
getPDFJS() { getPDFJS() {
@@ -98,6 +102,7 @@ export class PdfViewerComponent {
/** /**
* Method to scale the page current support implementation * Method to scale the page current support implementation
*
* @param {string} scaleMode - new scale mode * @param {string} scaleMode - new scale mode
*/ */
scalePage(scaleMode) { scalePage(scaleMode) {
@@ -147,6 +152,7 @@ export class PdfViewerComponent {
/** /**
* Update all the pages with the newScale scale * Update all the pages with the newScale scale
*
* @param {number} newScale - new scale page * @param {number} newScale - new scale page
*/ */
setScaleUpdatePages(newScale: number) { setScaleUpdatePages(newScale: number) {
@@ -166,6 +172,8 @@ export class PdfViewerComponent {
* *
* @param {number} oldScale - old scale page * @param {number} oldScale - old scale page
* @param {number} newScale - new scale page * @param {number} newScale - new scale page
*
* @returns {boolean}
*/ */
isSameScale(oldScale: number, newScale: number) { isSameScale(oldScale: number, newScale: number) {
return (newScale === oldScale); return (newScale === oldScale);
@@ -177,6 +185,8 @@ export class PdfViewerComponent {
* *
* @param {number} width * @param {number} width
* @param {number} height * @param {number} height
*
* @returns {boolean}
*/ */
isLandscape(width: number, height: number) { isLandscape(width: number, height: number) {
return (width > height); return (width > height);
@@ -190,10 +200,46 @@ export class PdfViewerComponent {
} }
/** /**
* Method triggered when the page is resized * toggle the fit page pdf
*/ */
pageFit() { pageFit() {
if (this.currentScaleMode !== 'page-fit') {
this.scalePage('page-fit'); this.scalePage('page-fit');
} else {
this.scalePage('auto');
}
}
/**
* zoom in page pdf
*
* @param {number} ticks
*/
zoomIn(ticks: number) {
let newScale: any = this.currentScale;
do {
newScale = (newScale * this.DEFAULT_SCALE_DELTA).toFixed(2);
newScale = Math.ceil(newScale * 10) / 10;
newScale = Math.min(this.MAX_SCALE, newScale);
} while (--ticks > 0 && newScale < this.MAX_SCALE);
this.currentScaleMode = 'auto';
this.setScaleUpdatePages(newScale);
}
/**
* zoom out page pdf
*
* @param {number} ticks
*/
zoomOut(ticks: number) {
let newScale: any = this.currentScale;
do {
newScale = (newScale / this.DEFAULT_SCALE_DELTA).toFixed(2);
newScale = Math.floor(newScale * 10) / 10;
newScale = Math.max(this.MIN_SCALE, newScale);
} while (--ticks > 0 && newScale > this.MIN_SCALE);
this.currentScaleMode = 'auto';
this.setScaleUpdatePages(newScale);
} }
/** /**