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
@@ -14,9 +14,8 @@
</ion-header>
<ion-content class="pt-10 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>
</ion-content>
@@ -10,7 +10,7 @@ import { ProcessesService } from 'src/app/services/processes.service';
})
export class DocumentViewerPage implements OnInit {
pdfSrc = 'http://laptop-46/FileShare/Test_25MB.pdf';
pdfSrc = null;
task = null
DocId = null
fileName = ''
@@ -24,10 +24,7 @@ export class DocumentViewerPage implements OnInit {
this.task = this.navParams.get('task') || null;
this.DocId = this.navParams.get('DocId');
if(this.navParams.get('pdfSrc')) {
this.pdfSrc = this.navParams.get('pdfSrc') || null;
}
this.pdfSrc = 'https://equilibrium.dyndns.info/FileShare/pdfjs/web/viewer.html?file='
}
@@ -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() {
+1 -1
View File
@@ -8,7 +8,7 @@ import { AlertService } from 'src/app/services/alert.service';
import { momentG } from 'src/plugin/momentG';
import { DomSanitizer } from "@angular/platform-browser";
import { EventPerson } from 'src/app/models/eventperson.model';
import { removeDuplicate } from 'src/plugin/removeDuplicate.js'
import { removeDuplicate } from 'src/plugin/removeDuplicate.js';
// showTimeline
import { setHours, setMinutes } from 'date-fns';
@@ -161,7 +161,7 @@ export class DespachoPage implements OnInit {
viewDocument(docId:string) {
this.processes.GetDocumentUrl(docId, '361').subscribe(res=>{
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();
});
}
@@ -16,9 +16,7 @@ export class DespachosPage implements OnInit {
constructor (
private router: Router,
private despachoRule: DespachoService
) {
}
) {}
ngOnInit() {
@@ -305,16 +305,7 @@ export class ExpedienteDetailPage implements OnInit {
async viewDocument(DocId:string) {
const modal = await this.modalController.create({
component: DocumentViewerPage,
cssClass: 'modal-desktop modal',
componentProps: {
DocId: DocId
}
});
await modal.present();
modal.onDidDismiss().then( async (res)=> {
});
this.expedienteService.viewDocument({ApplicationId:'361', DocId})
}
+1 -2
View File
@@ -3,7 +3,7 @@
///<reference path="../../../plugins/cordova-plugin-mfp-push/typings/mfppush.d.ts" />
import { Injectable, NgZone } from '@angular/core';
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 { StorageService } from 'src/app/services/storage.service';
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 { NavigationExtras,Router } from '@angular/router';
import { ToastService } from '../services/toast.service';
import { Optional } from '@angular/core';
import { JsonStore } from './jsonStore.service';
import { synchro } from './socket/synchro.service';
import { v4 as uuidv4 } from 'uuid'
+2
View File
@@ -10016,6 +10016,8 @@ function getDocument(src) {
var docId = task.docId;
worker.promise.then(function () {
if (task.destroyed) {
throw new Error('Loading aborted');
}