You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2022/05/11 10:50:50 UTC
[isis] branch master updated: ISIS-3040: pdf.js integration java-script fixes
This is an automated email from the ASF dual-hosted git repository.
ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 19cdded929 ISIS-3040: pdf.js integration java-script fixes
19cdded929 is described below
commit 19cdded92937156b5f3779db51a9fcd15fb1c3d2
Author: Andi Huber <ah...@apache.org>
AuthorDate: Wed May 11 12:50:44 2022 +0200
ISIS-3040: pdf.js integration java-script fixes
- such that we can now switch to v2
---
.../IsisModuleExtPdfjsWicketIntegration.java | 2 +-
.../wkt/integration/res/pdfjs-integration-v2.js | 112 ++++++++++++---------
2 files changed, 63 insertions(+), 51 deletions(-)
diff --git a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/IsisModuleExtPdfjsWicketIntegration.java b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/IsisModuleExtPdfjsWicketIntegration.java
index 6f7ae91563..d954d6a238 100644
--- a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/IsisModuleExtPdfjsWicketIntegration.java
+++ b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/IsisModuleExtPdfjsWicketIntegration.java
@@ -46,7 +46,7 @@ implements WicketApplicationInitializer {
}
public static PdfJsVersion getPdfJsVersion() {
- return PdfJsVersion.V1_X;
+ return PdfJsVersion.V2_X;
}
}
diff --git a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
index ca14babd23..8cf35b70f9 100644
--- a/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
+++ b/extensions/vw/pdfjs/wicket/integration/src/main/java/org/apache/isis/extensions/pdfjs/wkt/integration/res/pdfjs-integration-v2.js
@@ -95,50 +95,6 @@
});
- /**
- * Get page info from document, resize canvas accordingly, and render page.
- * @param num Page number.
- */
- function renderPage(num) {
- pageRendering = true;
- if(num > pdfDoc.numPages) {
- num = pdfDoc.numPages
- }
- if(num < 1) {
- num = 1
- }
- // Using promise to fetch the page
- pdfDoc.getPage(num).then(function(page) {
-
- if (autoScale) {
- scale = calculateAutoScale(page)
- }
-
- var viewport = page.getViewport(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;
- }
- });
- Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_PAGE, pageNum, {"canvasId": config.canvasId});
- Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_ZOOM, scaleValue, {"canvasId": config.canvasId});
- Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_HEIGHT, $(canvasDiv).height(), {"canvasId": config.canvasId});
- });
- }
-
function printDocument() {
pageRendering = true;
abortingPrinting = false;
@@ -271,15 +227,15 @@
function calculateAutoScale(page) {
- var viewport = page.getViewport(1);
+ var viewport = page.getViewport({scale: 1});
var pageWidth = viewport.width;
var pageHeight = viewport.height;
var containerWidth = $(canvasDiv).width();
var containerHeight = $(canvasDiv).height();
- // console.log("page (width, height) = (" + pageWidth + "," + pageHeight + ")")
- // console.log("container (width, height) = (" + containerWidth + "," + containerHeight + ")")
+ //console.log("page (width, height) = (" + pageWidth + "," + pageHeight + ")")
+ //console.log("container (width, height) = (" + containerWidth + "," + containerHeight + ")")
var pageWidthScale = containerWidth / pageWidth;
var pageHeightScale = containerHeight / pageHeight;
@@ -390,8 +346,64 @@
printDocument();
});
- console.log("url: " + config.documentUrl);
- console.log("cMapUrl: " + config.cmapsUrl);
+ function boundedPageNumber(num) {
+ if(num > pdfDoc.numPages) {
+ return pdfDoc.numPages;
+ }
+ if(num < 1) {
+ return 1;
+ }
+ return num;
+ }
+
+ /**
+ * Get page info from document, resize canvas accordingly, and render page.
+ * @param num Page number.
+ */
+ function renderPage(num) {
+ console.log("renderPage: " + num);
+
+ pageRendering = true;
+ // Using promise to fetch the page
+ pdfDoc.getPage(num).then(function(page) {
+
+ if (autoScale) {
+ scale = calculateAutoScale(page);
+ }
+
+ //console.log("page ready for rendering, scale: " + scale);
+
+ var viewport = page.getViewport({scale: scale});
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+
+ //console.log("viewport.height: " + viewport.height);
+ //console.log("viewport.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;
+ }
+ });
+ Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_PAGE, pageNum, {"canvasId": config.canvasId});
+ Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_ZOOM, scaleValue, {"canvasId": config.canvasId});
+ Wicket.Event.publish(WicketStuff.PDFJS.Topic.CURRENT_HEIGHT, $(canvasDiv).height(), {"canvasId": config.canvasId});
+ });
+ }
+
+ //console.log("url: " + config.documentUrl);
+ //console.log("cMapUrl: " + config.cmapsUrl);
+ //console.log("canvasId: " + config.canvasId);
/**
* Asynchronously downloads PDF.
@@ -405,7 +417,7 @@
loadingTask.promise.then(function (pdfDoc_) {
pdfDoc = pdfDoc_;
Wicket.Event.publish(WicketStuff.PDFJS.Topic.TOTAL_PAGES, pdfDoc.numPages, {"canvasId": config.canvasId});
- renderPage(pageNum);
+ renderPage(boundedPageNumber(pageNum));
});
}
};