]> git.parisson.com Git - pdf.js.git/commitdiff
rename test.html to viewer.html
authorAndreas Gal <andreas.gal@gmail.com>
Fri, 17 Jun 2011 23:20:13 +0000 (16:20 -0700)
committerAndreas Gal <andreas.gal@gmail.com>
Fri, 17 Jun 2011 23:20:13 +0000 (16:20 -0700)
glyphlist.js
test.css [deleted file]
test.html [deleted file]
test.js [deleted file]
viewer.css [new file with mode: 0644]
viewer.html [new file with mode: 0644]
viewer.js [new file with mode: 0644]

index f5a11b5225648a11a735ca90d39e662973a90624..1a0190133c834cb2544dd7bcd07e188404a1702b 100644 (file)
@@ -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 (file)
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 (file)
index 600ff3c..0000000
--- a/test.html
+++ /dev/null
@@ -1,33 +0,0 @@
-<html>
-    <head>
-        <title>Simple pdf.js page viewer</title>
-        <link rel="stylesheet" href="test.css"></link>
-
-        <script type="text/javascript" src="test.js"></script>
-        <script type="text/javascript" src="pdf.js"></script>
-        <script type="text/javascript" src="fonts.js"></script>
-        <script type="text/javascript" src="glyphlist.js"></script>
-  </head>
-
-  <body onload="load();">
-    <div id="controls">
-    <input type="file" style="float: right; margin: auto 32px;" onChange="load(this.value.toString());"></input>
-    <!-- This only opens supported PDFs from the source path...
-      -- Can we use JSONP to overcome the same-origin restrictions? -->
-      <button onclick="prevPage();">Previous</button>
-      <button onclick="nextPage();">Next</button>
-      <input type="text" id="pageNumber" onchange="gotoPage(this.value);"
-             value="1" size="4"></input>
-      <span id="numPages">--</span>
-      <span id="info"></span>
-    </div>
-
-    <div id="viewer">
-      <!-- Canvas dimensions must be specified in CSS pixels.  CSS pixels
-           are always 96 dpi.  816x1056 is 8.5x11in at 96dpi. -->
-      <!-- We're rendering here at 1.5x scale. -->
-      <canvas id="canvas" width="1224" height="1584"></canvas>
-    </div>
-  </body>
-</html>
-
diff --git a/test.js b/test.js
deleted file mode 100644 (file)
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 (file)
index 0000000..857eed1
--- /dev/null
@@ -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 (file)
index 0000000..6e73331
--- /dev/null
@@ -0,0 +1,33 @@
+<html>
+    <head>
+        <title>Simple pdf.js page viewer</title>
+        <link rel="stylesheet" href="viewer.css"></link>
+
+        <script type="text/javascript" src="viewer.js"></script>
+        <script type="text/javascript" src="pdf.js"></script>
+        <script type="text/javascript" src="fonts.js"></script>
+        <script type="text/javascript" src="glyphlist.js"></script>
+  </head>
+
+  <body onload="load();">
+    <div id="controls">
+    <input type="file" style="float: right; margin: auto 32px;" onChange="load(this.value.toString());"></input>
+    <!-- This only opens supported PDFs from the source path...
+      -- Can we use JSONP to overcome the same-origin restrictions? -->
+      <button onclick="prevPage();">Previous</button>
+      <button onclick="nextPage();">Next</button>
+      <input type="text" id="pageNumber" onchange="gotoPage(this.value);"
+             value="1" size="4"></input>
+      <span id="numPages">--</span>
+      <span id="info"></span>
+    </div>
+
+    <div id="viewer">
+      <!-- Canvas dimensions must be specified in CSS pixels.  CSS pixels
+           are always 96 dpi.  816x1056 is 8.5x11in at 96dpi. -->
+      <!-- We're rendering here at 1.5x scale. -->
+      <canvas id="canvas" width="1224" height="1584"></canvas>
+    </div>
+  </body>
+</html>
+
diff --git a/viewer.js b/viewer.js
new file mode 100644 (file)
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);
+}
+