Fix viewer

This commit is contained in:
Peter Maquiran
2021-10-05 15:02:52 +01:00
parent 847a9ec999
commit d8757b4c58
8 changed files with 11 additions and 188 deletions
@@ -16,7 +16,6 @@
<ion-content class="pt-10 height-100"> <ion-content class="pt-10 height-100">
<div *ngIf="pdfSrc" class="height-100"> <div *ngIf="pdfSrc" class="height-100">
<iframe id="iframe" src="https://equilibrium.dyndns.info/FileShare/pdfjs/web/viewer.html?file=https://equilibrium.dyndns.info/FileShare/merged_fastview.pdf" height="100%" width="100%" title="Iframe Example"></iframe> <iframe id="iframe" src="https://equilibrium.dyndns.info/FileShare/pdfjs/web/viewer.html?file=https://equilibrium.dyndns.info/FileShare/merged_fastview.pdf&caches=12321231231f23123" height="100%" width="100%" title="Iframe Example"></iframe>
</div> </div>
</ion-content> </ion-content>
@@ -10,7 +10,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
}) })
export class DocumentViewerPage implements OnInit { export class DocumentViewerPage implements OnInit {
pdfSrc = 'http://laptop-46/FileShare/Test_25MB.pdf'; pdfSrc = null;
task = null task = null
DocId = null DocId = null
fileName = '' fileName = ''
@@ -24,10 +24,7 @@ export class DocumentViewerPage implements OnInit {
this.task = this.navParams.get('task') || null; this.task = this.navParams.get('task') || null;
this.DocId = this.navParams.get('DocId'); this.DocId = this.navParams.get('DocId');
if(this.navParams.get('pdfSrc')) { this.pdfSrc = 'https://equilibrium.dyndns.info/FileShare/pdfjs/web/viewer.html?file='
this.pdfSrc = this.navParams.get('pdfSrc') || null;
}
} }
@@ -41,169 +38,6 @@ export class DocumentViewerPage implements OnInit {
}) })
// this.setPdfViewer()
// setTimeout(() => {
// document.getElementById('iframe')['contentWindow'].postMessage(
// {
// sender: "get_page_button1",
// message: 'url'
// }, "*")
// }, 3000)
}
setPdfViewer() {
setTimeout( async () => {
// If absolute URL from the remote server is provided, configure the CORS
// header on that server.
var url = 'http://192.168.0.87:3000/000634977.pdf';
const pdfjsWorker = await import('pdfjs-dist/build/pdf.worker.entry');
// Loaded via <script> tag, create shortcut to access PDF.js exports.
var pdfjsLib = await import('pdfjs-dist/build/pdf');
// The workerSrc property shall be specified.
// pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js';
pdfjsLib.GlobalWorkerOptions.workerSrc = pdfjsWorker;
var pdfDoc = null,
pageNum = 1,
pageRendering = false,
pageNumPending = null,
scale = 0.8,
canvas: any = document.getElementById('the-canvas'),
ctx = canvas.getContext('2d');
/**
* Get page info from document, resize canvas accordingly, and render page.
* @param num Page number.
*/
function renderPage(num) {
pageRendering = true;
// Using promise to fetch the page
pdfDoc.getPage(num).then(function(page) {
var viewport = page.getViewport({scale: scale});
canvas.height = viewport.height;
canvas.width = viewport.width;
// Render PDF page into canvas context
var renderContext = {
canvasContext: ctx,
viewport: viewport
};
var renderTask = page.render(renderContext);
// Wait for rendering to finish
renderTask.promise.then(function() {
pageRendering = false;
if (pageNumPending !== null) {
// New page rendering is pending
renderPage(pageNumPending);
pageNumPending = null;
}
});
});
// Update page counters
// document.getElementById('page_num').textContent = num;
}
/**
* If another page rendering in progress, waits until the rendering is
* finised. Otherwise, executes rendering immediately.
*/
function queueRenderPage(num) {
if (pageRendering) {
pageNumPending = num;
} else {
renderPage(num);
}
}
/**
* Displays previous page.
*/
function onPrevPage() {
if (pageNum <= 1) {
return;
}
pageNum--;
queueRenderPage(pageNum);
}
document.getElementById('prev').addEventListener('click', onPrevPage);
/**
* Displays next page.
*/
function onNextPage() {
if (pageNum >= pdfDoc.numPages) {
return;
}
pageNum++;
queueRenderPage(pageNum);
}
document.getElementById('next').addEventListener('click', onNextPage);
var currPage = 1; //Pages are 1-based not 0-based
var numPages = 0;
var thePDF = null;
function handlePages(page)
{
//This gives us the page's dimensions at full scale
var viewport = page.getViewport( 1 );
//We'll create a canvas for each page to draw it on
var canvas = document.createElement( "canvas" );
canvas.style.display = "block";
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
//Draw it on the canvas
page.render({canvasContext: context, viewport: viewport});
//Add it to the web page
document.querySelector('#pdf-container').appendChild( canvas );
//Move to next page
currPage++;
if ( thePDF !== null && currPage <= numPages )
{
thePDF.getPage( currPage ).then( handlePages );
}
}
/**
* Asynchronously downloads PDF.
*/
pdfjsLib.getDocument(url).promise.then(function(pdfDoc_) {
pdfDoc = pdfDoc_;
thePDF = pdfDoc_
pdfDoc.getPage(1).then(function(page) {
// you can now use *page* here
// alert('first page')
});
// Initial/first page rendering
renderPage(pageNum);
numPages = pdfDoc.numPages;
pdfDoc.getPage( 1 ).then( handlePages );
});
}, 100)
} }
close() { close() {
+1 -1
View File
@@ -8,7 +8,7 @@ import { AlertService } from 'src/app/services/alert.service';
import { momentG } from 'src/plugin/momentG'; import { momentG } from 'src/plugin/momentG';
import { DomSanitizer } from "@angular/platform-browser"; import { DomSanitizer } from "@angular/platform-browser";
import { EventPerson } from 'src/app/models/eventperson.model'; import { EventPerson } from 'src/app/models/eventperson.model';
import { removeDuplicate } from 'src/plugin/removeDuplicate.js' import { removeDuplicate } from 'src/plugin/removeDuplicate.js';
// showTimeline // showTimeline
import { setHours, setMinutes } from 'date-fns'; import { setHours, setMinutes } from 'date-fns';
@@ -161,7 +161,7 @@ export class DespachoPage implements OnInit {
viewDocument(docId:string) { viewDocument(docId:string) {
this.processes.GetDocumentUrl(docId, '361').subscribe(res=>{ this.processes.GetDocumentUrl(docId, '361').subscribe(res=>{
const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1"); const url: string = res.replace("webTRIX.Viewer","webTRIX.Viewer.Branch1");
const browser = this.iab.create('https://equilibrium.dyndns.info/FileShare/pdfjs/web/viewer.html?file=https://equilibrium.dyndns.info/FileShare/merged_fastview.pdf', "_blank", 'location=yes,x=0,y=200,width=437,height=650,fullscreen=no'); const browser = this.iab.create(url,"_blank");
browser.show(); browser.show();
}); });
} }
@@ -16,9 +16,7 @@ export class DespachosPage implements OnInit {
constructor ( constructor (
private router: Router, private router: Router,
private despachoRule: DespachoService private despachoRule: DespachoService
) { ) {}
}
ngOnInit() { ngOnInit() {
@@ -305,16 +305,7 @@ export class ExpedienteDetailPage implements OnInit {
async viewDocument(DocId:string) { async viewDocument(DocId:string) {
const modal = await this.modalController.create({ this.expedienteService.viewDocument({ApplicationId:'361', DocId})
component: DocumentViewerPage,
cssClass: 'modal-desktop modal',
componentProps: {
DocId: DocId
}
});
await modal.present();
modal.onDidDismiss().then( async (res)=> {
});
} }
+1 -2
View File
@@ -3,7 +3,7 @@
///<reference path="../../../plugins/cordova-plugin-mfp-push/typings/mfppush.d.ts" /> ///<reference path="../../../plugins/cordova-plugin-mfp-push/typings/mfppush.d.ts" />
import { Injectable, NgZone } from '@angular/core'; import { Injectable, NgZone } from '@angular/core';
import { ActivatedRoute } from '@angular/router' import { ActivatedRoute } from '@angular/router'
import { HttpClient, HttpHeaders, HttpParams } from '@angular/common/http'; import { HttpClient } from '@angular/common/http';
import { environment } from 'src/environments/environment'; import { environment } from 'src/environments/environment';
import { StorageService } from 'src/app/services/storage.service'; import { StorageService } from 'src/app/services/storage.service';
import { AuthConnstants } from 'src/app/config/auth-constants'; import { AuthConnstants } from 'src/app/config/auth-constants';
@@ -11,7 +11,6 @@ import { Token } from '../models/token.model';
import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular'; import { ModalController, AlertController, AnimationController, Platform } from '@ionic/angular';
import { NavigationExtras,Router } from '@angular/router'; import { NavigationExtras,Router } from '@angular/router';
import { ToastService } from '../services/toast.service'; import { ToastService } from '../services/toast.service';
import { Optional } from '@angular/core';
import { JsonStore } from './jsonStore.service'; import { JsonStore } from './jsonStore.service';
import { synchro } from './socket/synchro.service'; import { synchro } from './socket/synchro.service';
import { v4 as uuidv4 } from 'uuid' import { v4 as uuidv4 } from 'uuid'
+2
View File
@@ -10016,6 +10016,8 @@ function getDocument(src) {
var docId = task.docId; var docId = task.docId;
worker.promise.then(function () { worker.promise.then(function () {
if (task.destroyed) { if (task.destroyed) {
throw new Error('Loading aborted'); throw new Error('Loading aborted');
} }