Mercurial > hgrepos > Python2 > PyMuPDF
diff mupdf-source/platform/wasm/examples/streams/fetch-stream.js @ 2:b50eed0cc0ef upstream
ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4.
The directory name has changed: no version number in the expanded directory now.
| author | Franz Glasner <fzglas.hg@dom66.de> |
|---|---|
| date | Mon, 15 Sep 2025 11:43:07 +0200 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mupdf-source/platform/wasm/examples/streams/fetch-stream.js Mon Sep 15 11:43:07 2025 +0200 @@ -0,0 +1,50 @@ +"use strict" + +import * as mupdf from "mupdf" + +class FetchStream { + constructor(url) { + fetch(url) + .then((response) => { + if (!response.ok) + throw new Error("HTTP " + response.status) + return response.arrayBuffer() + }) + .then((buffer) => { + this.buffer = new Uint8Array(buffer) + }) + } + fileSize() { + if (this.buffer) + return this.buffer.byteLength + return -1 // signal try later + } + read(memory, offset, size, position) { + if (this.buffer) { + size = Math.min(size, this.buffer.byteLength - position) + memory.set(this.buffer.subarray(position, position + size), offset) + return size + } + return -1 // signal try later + } + close() { + this.buffer = null + } +} + +var stm = new mupdf.Stream(new FetchStream("https://mupdf.com/docs/mupdf_explored.pdf")) +function loop() { + try { + var doc = mupdf.Document.openDocument(stm, "application/pdf") + var n = doc.countPages() + console.log("Document has " + n + " pages!") + } catch (err) { + if (err === "TRYLATER") { + console.log("Waiting...") + setTimeout(loop, 1000) + } else { + throw err + } + } +} +loop()
