diff options
author | Tor Andersson <tor.andersson@artifex.com> | 2018-09-10 18:18:49 +0200 |
---|---|---|
committer | Tor Andersson <tor.andersson@artifex.com> | 2018-10-23 17:23:59 +0200 |
commit | 8ebce9c149112d59552ed530361f80372455fdb2 (patch) | |
tree | ebc90eb93345d1b3a77841ed2a92e56a4c1b1baf /platform/wasm/view-page.html | |
parent | ddd00f62888c908c84932c2a92a0c2d195b26c36 (diff) | |
download | mupdf-8ebce9c149112d59552ed530361f80372455fdb2.tar.xz |
Add Emscripten / WebAssembly build.
Requires Linux (or possibly MacOS X) and an installed emsdk to build.
Diffstat (limited to 'platform/wasm/view-page.html')
-rw-r--r-- | platform/wasm/view-page.html | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/platform/wasm/view-page.html b/platform/wasm/view-page.html new file mode 100644 index 00000000..ce56962f --- /dev/null +++ b/platform/wasm/view-page.html @@ -0,0 +1,74 @@ +<!DOCTYPE html> +<html> +<head> +<title>Loading...</title> +<meta charset="utf-8"> +<script src="libmupdf.js"></script> +<script> +var filename = new URL(window.location.href).searchParams.get("file"); +if (!filename) + filename = "pdfref13.pdf"; +Module.preRun = function () { + FS.createPreloadedFile(".", filename, filename, true, false); +}; +Module.postRun = function () { + loadDocument(filename); +}; + +var currentDocument = null; +var currentPage = 1; +var currentZoom = 72; +var pageCount = 0; +function loadDocument(filename) { + currentDocument = mupdf.openDocument(filename); + document.title = mupdf.documentTitle(currentDocument); + pageCount = mupdf.countPages(currentDocument); + updatePage(); +} +function updatePage() { + document.getElementById("page").src = mupdf.drawPageAsPNG(currentDocument, currentPage, currentZoom); + document.getElementById("pageNumber").value = currentPage; +} +function nextPage() { + if (currentPage <= pageCount) { + ++currentPage; + updatePage(); + } +} +function prevPage() { + if (currentPage > 1) { + --currentPage; + updatePage(); + } +} +function gotoPage() { + var page = parseInt(document.getElementById("pageNumber").value) + if (page >= 1 && page <= pageCount) { + currentPage = page; + updatePage(); + } +} +function zoomIn() { + currentZoom *= 1.2; + updatePage(); +} +function zoomOut() { + currentZoom /= 1.2; + updatePage(); +} +</script> +<style> +body{margin:2em;background-color:#aaa} +</style> +</head> +<body> +<p> +<button onClick="prevPage()"><</button> +<input id="pageNumber" onChange="gotoPage()" type="text" size="5"> +<button onClick="nextPage()">></button> +<button onClick="zoomIn()">+</button> +<button onClick="zoomOut()">-</button> +<p> +<img id="page"> +</body> +</html> |