From 975f4fd1d128bdba7577eac6263e4a079b95e112 Mon Sep 17 00:00:00 2001 From: glovetleong Date: Tue, 16 Mar 2021 22:07:34 +0800 Subject: [PATCH] iframe pdf --- .../ControllersLogic/RenderDocumentLogic.php | 9 ++++- npm-shrinkwrap.json | 5 --- package.json | 1 - .../elements/DocumentFileViewrComponent.vue | 40 +------------------ .../general/elements/PdfViewerComponent.vue | 4 +- 5 files changed, 11 insertions(+), 48 deletions(-) diff --git a/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php b/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php index 7ef87960..84759f14 100644 --- a/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php +++ b/app/Classes/Modules/Documents/ControllersLogic/RenderDocumentLogic.php @@ -58,8 +58,13 @@ class RenderDocumentLogic extends AbstractControllerLogic { throw new ResourceNotFoundException(); } - return $this->response(['src' => Storage::disk('documents')->get($file)]); + $extention = explode('.', $file); + if ($extention[1] == 'pdf') { + return $this->response(['src' => chunk_split(base64_encode(Storage::disk('documents')->get($file)))]); + } + else { + return $this->response(['src' => Storage::disk('documents')->get($file)]); + } } - } \ No newline at end of file diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 6e5248c3..0b362b17 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -9708,11 +9708,6 @@ "sha.js": "^2.4.8" } }, - "pdfjs-dist": { - "version": "2.6.347", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.6.347.tgz", - "integrity": "sha512-QC+h7hG2su9v/nU1wEI3SnpPIrqJODL7GTDFvR74ANKGq1AFJW16PH8VWnhpiTi9YcLSFV9xLeWSgq+ckHLdVQ==" - }, "perfect-scrollbar": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/perfect-scrollbar/-/perfect-scrollbar-1.5.0.tgz", diff --git a/package.json b/package.json index b2003517..ea1b12a3 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,6 @@ "jquery.scrollbar": "^0.2.11", "jwt-decode": "^3.1.2", "noty": "^3.2.0-beta", - "pdfjs-dist": "^2.6.347", "perfect-scrollbar": "^1.5.0", "popper.js": "^1.12", "sass-loader": "10.1.0", diff --git a/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue b/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue index 6a3ca700..6334f82e 100644 --- a/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue +++ b/resources/assets/vue/components/general/elements/DocumentFileViewrComponent.vue @@ -9,7 +9,7 @@
- +
@@ -24,7 +24,6 @@ type: Object, required: true }, - }, data(){ return { @@ -47,41 +46,7 @@ } }, renderPdf() { - this.isLoading = true; - var pdfjsLib = window['pdfjs-dist/build/pdf']; - - pdfjsLib.GlobalWorkerOptions.workerSrc = '//mozilla.github.io/pdf.js/build/pdf.worker.js'; - - var loadingTask = pdfjsLib.getDocument({data: this.src}); - loadingTask.promise.then(function(pdf) { - - // Fetch the first page - var pageNumber = 1; - pdf.getPage(pageNumber).then(function(page) { - - var scale = 1.5; - var viewport = page.getViewport({scale: scale}); - - // Prepare canvas using PDF page dimensions - var canvas = $(this.$refs.canvas); - var context = canvas.getContext('2d'); - canvas.height = viewport.height; - canvas.width = viewport.width; - - // Render PDF page into canvas context - var renderContext = { - canvasContext: context, - viewport: viewport - }; - var renderTask = page.render(renderContext); - renderTask.promise.then(function () { - console.log('Page rendered'); - }); - }); - }, function (reason) { - // PDF loading error - console.error(reason); - }); + this.isLoading = false; }, successHandler(response){ this.loaded = true; @@ -91,7 +56,6 @@ if(this.type === 'pdf'){ this.renderPdf() } - }, errorHandler(error, statusCode){ this.src = statusCode === 404 ? 'images/3231370.jpg' : 'images/2942005.jpg' diff --git a/resources/assets/vue/components/general/elements/PdfViewerComponent.vue b/resources/assets/vue/components/general/elements/PdfViewerComponent.vue index 52c0e56a..bfabb94d 100644 --- a/resources/assets/vue/components/general/elements/PdfViewerComponent.vue +++ b/resources/assets/vue/components/general/elements/PdfViewerComponent.vue @@ -1,4 +1,4 @@ -