From: Andreas Gal Date: Fri, 17 Jun 2011 23:20:13 +0000 (-0700) Subject: rename test.html to viewer.html X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=22efbb3af3ca1216fcb6bc2eec05cb47aaa07da6;p=pdf.js.git rename test.html to viewer.html --- diff --git a/glyphlist.js b/glyphlist.js index f5a11b5..1a01901 100644 --- a/glyphlist.js +++ b/glyphlist.js @@ -4282,8 +4282,8 @@ var GlyphsUnicode = { zukatakana: 0x30BA }; -// Add missing glyphs from the original Adobe's list -GlyphsUnicode["angbracketleft"] = 0x3008; -GlyphsUnicode["angbracketright"] = 0x3009; -GlyphsUnicode["circlecopyrt"] = 0x00A9; +// Add missing glyphs from the Adobe's original list +GlyphsUnicode.angbracketleft = 0x3008; +GlyphsUnicode.angbracketright = 0x3009; +GlyphsUnicode.circlecopyrt = 0x00A9; diff --git a/test.css b/test.css deleted file mode 100644 index 857eed1..0000000 --- a/test.css +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- / -/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */ - -body { - margin: 6px; - padding: 0px; - background-color: #c0bdb7; -} - -#controls { - position:fixed; - left: 0px; - top: 0px; - width: 100%; - padding: 7px; - border-bottom: 1px solid black; - background-color: rgb(242, 240, 238); -} - -span#info { - float: right; - font: 14px sans-serif; - margin-right: 10px; -} - -#viewer { - margin: auto; - border: 1px solid black; - width: 12.75in; - height: 16.5in; -} - -#pageNumber { - text-align: right; -} diff --git a/test.html b/test.html deleted file mode 100644 index 600ff3c..0000000 --- a/test.html +++ /dev/null @@ -1,33 +0,0 @@ - - - Simple pdf.js page viewer - - - - - - - - - -
- - - - - - -- - -
- -
- - - -
- - - diff --git a/test.js b/test.js deleted file mode 100644 index 59d8167..0000000 --- a/test.js +++ /dev/null @@ -1,130 +0,0 @@ -/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- / -/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */ - -var pdfDocument, canvas, pageDisplay, pageNum, pageInterval; -function load(userInput) { - canvas = document.getElementById("canvas"); - canvas.mozOpaque = true; - pageNum = parseInt(queryParams().page) || 1; - fileName = userInput; - if (!userInput) { - fileName = queryParams().file || "compressed.tracemonkey-pldi-09.pdf"; - } - open(fileName); -} - -function queryParams() { - var qs = window.location.search.substring(1); - var kvs = qs.split("&"); - var params = { }; - for (var i = 0; i < kvs.length; ++i) { - var kv = kvs[i].split("="); - params[unescape(kv[0])] = unescape(kv[1]); - } - return params; -} - -function open(url) { - document.title = url; - req = new XMLHttpRequest(); - req.open("GET", url); - req.mozResponseType = req.responseType = "arraybuffer"; - req.expected = (document.URL.indexOf("file:") == 0) ? 0 : 200; - req.onreadystatechange = function() { - if (req.readyState == 4 && req.status == req.expected) { - var data = req.mozResponseArrayBuffer || req.mozResponse || - req.responseArrayBuffer || req.response; - pdfDocument = new PDFDoc(new Stream(data)); - numPages = pdfDocument.numPages; - document.getElementById("numPages").innerHTML = numPages.toString(); - goToPage(pageNum); - } - }; - req.send(null); -} - -function gotoPage(num) { - if (0 <= num && num <= numPages) - pageNum = num; - displayPage(pageNum); -} - -function displayPage(num) { - if (pageNum != num) - window.clearTimeout(pageInterval); - - document.getElementById("pageNumber").value = num; - - var t0 = Date.now(); - - var page = pdfDocument.getPage(pageNum = num); - - var t1 = Date.now(); - var ctx = canvas.getContext("2d"); - ctx.save(); - ctx.fillStyle = "rgb(255, 255, 255)"; - ctx.fillRect(0, 0, canvas.width, canvas.height); - ctx.restore(); - - var gfx = new CanvasGraphics(ctx); - - // page.compile will collect all fonts for us, once we have loaded them - // we can trigger the actual page rendering with page.display - var fonts = []; - page.compile(gfx, fonts); - var t2 = Date.now(); - - var fontsReady = true; - - // Inspect fonts and translate the missing one - var count = fonts.length; - for (var i = 0; i < count; i++) { - var font = fonts[i]; - if (Fonts[font.name]) { - fontsReady = fontsReady && !Fonts[font.name].loading; - continue; - } - - new Font(font.name, font.file, font.properties); - fontsReady = false; - } - - function delayLoadFont() { - for (var i = 0; i < count; i++) { - if (Fonts[font.name].loading) - return; - } - clearInterval(pageInterval); - - var t3 = Date.now(); - - page.display(gfx); - - var t4 = Date.now(); - - var infoDisplay = document.getElementById("info"); - infoDisplay.innerHTML = "Time to load/compile/fonts/render: "+ (t1 - t0) + "/" + (t2 - t1) + "/" + (t3 - t2) + "/" + (t4 - t3) + " ms"; - }; - - if (fontsReady) { - delayLoadFont(); - } else { - pageInterval = setInterval(delayLoadFont, 10); - } -} - -function nextPage() { - if (pageNum < pdfDocument.numPages) - displayPage(++pageNum); -} - -function prevPage() { - if (pageNum > 1) - displayPage(--pageNum); -} - -function goToPage(num) { - if (0 <= num && num <= numPages) - displayPage(pageNum = num); -} - diff --git a/viewer.css b/viewer.css new file mode 100644 index 0000000..857eed1 --- /dev/null +++ b/viewer.css @@ -0,0 +1,35 @@ +/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- / +/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */ + +body { + margin: 6px; + padding: 0px; + background-color: #c0bdb7; +} + +#controls { + position:fixed; + left: 0px; + top: 0px; + width: 100%; + padding: 7px; + border-bottom: 1px solid black; + background-color: rgb(242, 240, 238); +} + +span#info { + float: right; + font: 14px sans-serif; + margin-right: 10px; +} + +#viewer { + margin: auto; + border: 1px solid black; + width: 12.75in; + height: 16.5in; +} + +#pageNumber { + text-align: right; +} diff --git a/viewer.html b/viewer.html new file mode 100644 index 0000000..6e73331 --- /dev/null +++ b/viewer.html @@ -0,0 +1,33 @@ + + + Simple pdf.js page viewer + + + + + + + + + +
+ + + + + + -- + +
+ +
+ + + +
+ + + diff --git a/viewer.js b/viewer.js new file mode 100644 index 0000000..59d8167 --- /dev/null +++ b/viewer.js @@ -0,0 +1,130 @@ +/* -*- Mode: Java; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- / +/* vim: set shiftwidth=4 tabstop=8 autoindent cindent expandtab: */ + +var pdfDocument, canvas, pageDisplay, pageNum, pageInterval; +function load(userInput) { + canvas = document.getElementById("canvas"); + canvas.mozOpaque = true; + pageNum = parseInt(queryParams().page) || 1; + fileName = userInput; + if (!userInput) { + fileName = queryParams().file || "compressed.tracemonkey-pldi-09.pdf"; + } + open(fileName); +} + +function queryParams() { + var qs = window.location.search.substring(1); + var kvs = qs.split("&"); + var params = { }; + for (var i = 0; i < kvs.length; ++i) { + var kv = kvs[i].split("="); + params[unescape(kv[0])] = unescape(kv[1]); + } + return params; +} + +function open(url) { + document.title = url; + req = new XMLHttpRequest(); + req.open("GET", url); + req.mozResponseType = req.responseType = "arraybuffer"; + req.expected = (document.URL.indexOf("file:") == 0) ? 0 : 200; + req.onreadystatechange = function() { + if (req.readyState == 4 && req.status == req.expected) { + var data = req.mozResponseArrayBuffer || req.mozResponse || + req.responseArrayBuffer || req.response; + pdfDocument = new PDFDoc(new Stream(data)); + numPages = pdfDocument.numPages; + document.getElementById("numPages").innerHTML = numPages.toString(); + goToPage(pageNum); + } + }; + req.send(null); +} + +function gotoPage(num) { + if (0 <= num && num <= numPages) + pageNum = num; + displayPage(pageNum); +} + +function displayPage(num) { + if (pageNum != num) + window.clearTimeout(pageInterval); + + document.getElementById("pageNumber").value = num; + + var t0 = Date.now(); + + var page = pdfDocument.getPage(pageNum = num); + + var t1 = Date.now(); + var ctx = canvas.getContext("2d"); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, canvas.width, canvas.height); + ctx.restore(); + + var gfx = new CanvasGraphics(ctx); + + // page.compile will collect all fonts for us, once we have loaded them + // we can trigger the actual page rendering with page.display + var fonts = []; + page.compile(gfx, fonts); + var t2 = Date.now(); + + var fontsReady = true; + + // Inspect fonts and translate the missing one + var count = fonts.length; + for (var i = 0; i < count; i++) { + var font = fonts[i]; + if (Fonts[font.name]) { + fontsReady = fontsReady && !Fonts[font.name].loading; + continue; + } + + new Font(font.name, font.file, font.properties); + fontsReady = false; + } + + function delayLoadFont() { + for (var i = 0; i < count; i++) { + if (Fonts[font.name].loading) + return; + } + clearInterval(pageInterval); + + var t3 = Date.now(); + + page.display(gfx); + + var t4 = Date.now(); + + var infoDisplay = document.getElementById("info"); + infoDisplay.innerHTML = "Time to load/compile/fonts/render: "+ (t1 - t0) + "/" + (t2 - t1) + "/" + (t3 - t2) + "/" + (t4 - t3) + " ms"; + }; + + if (fontsReady) { + delayLoadFont(); + } else { + pageInterval = setInterval(delayLoadFont, 10); + } +} + +function nextPage() { + if (pageNum < pdfDocument.numPages) + displayPage(++pageNum); +} + +function prevPage() { + if (pageNum > 1) + displayPage(--pageNum); +} + +function goToPage(num) { + if (0 <= num && num <= numPages) + displayPage(pageNum = num); +} +