From bf86d1bec855bfab88939979792914945f4e62dd Mon Sep 17 00:00:00 2001 From: Vivien Nicolas <21@vingtetun.org> Date: Fri, 29 Jul 2011 18:17:04 +0200 Subject: [PATCH 1/2] Use Tango Public Domain icons and add some small tweaks to viewer.js --- web/images/document-print.svg | 532 ++++++++++++++++++++++++++++++++++ web/images/go-down.svg | 35 +-- web/images/go-up.svg | 35 +-- web/viewer.html | 7 + web/viewer.js | 58 ++-- 5 files changed, 611 insertions(+), 56 deletions(-) create mode 100644 web/images/document-print.svg diff --git a/web/images/document-print.svg b/web/images/document-print.svg new file mode 100644 index 000000000..0b8837ba1 --- /dev/null +++ b/web/images/document-print.svg @@ -0,0 +1,532 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + image/svg+xml + + Print Document + + + Jakub Steiner + + + + http://jimmac.musichall.cz + + + document + lpr + print + local + laser + bubblejet + inkjet + print + output + cups + lpd + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/web/images/go-down.svg b/web/images/go-down.svg index 18dadc498..95b82afd1 100644 --- a/web/images/go-down.svg +++ b/web/images/go-down.svg @@ -2,16 +2,16 @@ + http://jimmac.musichall.cz + rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> Go Down @@ -146,19 +153,13 @@ + rdf:about="http://creativecommons.org/licenses/publicdomain/"> + rdf:resource="http://creativecommons.org/ns#Reproduction" /> - - + rdf:resource="http://creativecommons.org/ns#Distribution" /> - + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> diff --git a/web/images/go-up.svg b/web/images/go-up.svg index 0e3d01d17..54263df3e 100644 --- a/web/images/go-up.svg +++ b/web/images/go-up.svg @@ -2,16 +2,16 @@ + http://jimmac.musichall.cz + rdf:resource="http://creativecommons.org/licenses/publicdomain/" /> Go Up @@ -146,19 +153,13 @@ + rdf:about="http://creativecommons.org/licenses/publicdomain/"> + rdf:resource="http://creativecommons.org/ns#Reproduction" /> - - + rdf:resource="http://creativecommons.org/ns#Distribution" /> - + rdf:resource="http://creativecommons.org/ns#DerivativeWorks" /> diff --git a/web/viewer.html b/web/viewer.html index 285dadb01..e740c2bc0 100644 --- a/web/viewer.html +++ b/web/viewer.html @@ -44,6 +44,13 @@
+ + +
+
diff --git a/web/viewer.js b/web/viewer.js index 328388396..eae5b383e 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -5,7 +5,6 @@ var kDefaultURL = 'compressed.tracemonkey-pldi-09.pdf'; var kDefaultScale = 150; - var kCacheSize = 20; var Cache = function(size) { @@ -24,41 +23,40 @@ var PDFView = { thumbnails: [], set scale(val) { - var options = document.getElementById('scaleSelect').options; - for (var i = 0; i < options.length; i++) { - var option = options[i]; - option.selected = (option.value == val); - } - var pages = this.pages; var cssUnits = 96.0 / 72.0; for (var i = 0; i < pages.length; i++) pages[i].update(val / 100 * cssUnits); // Jump the scroll position to the correct page. - this.page = this.page; + document.location.hash = this.page; + + var event = document.createEvent("UIEvents"); + event.initUIEvent("scalechange", false, false, window, val); + window.dispatchEvent(event); }, set page(val) { var pages = this.pages; - var input = document.getElementById("pageNumber"); - if (val <= 0 || val > pages.length) { - input.value = this.page; - return; + if (val <= 0 || val == this.page || val > pages.length) { + // TODO If the hash if set to a dumb value, like #123456, the input field + // of the UI will be set to it even if no page is changed because its out + // of bound. + val = this.page || 1; + } else { + // Draw the page before jumping to it in order to avoid seeing the + // possible gap between pages if the page has never been draw before. + pages[val - 1].draw(); + document.location.hash = val; } - document.location.hash = val; - document.getElementById("previous").disabled = (val == 1); - document.getElementById("next").disabled = (val == pages.length); - if (input.value == val) - return; - - input.value = val; - pages[val - 1].draw(); + var event = document.createEvent("UIEvents"); + event.initUIEvent("pagechange", false, false, window, val); + window.dispatchEvent(event); }, get page() { - return parseInt(document.location.hash.substring(1)) || 1; + return parseInt(document.location.hash.substring(1)); }, open: function(url, scale) { @@ -253,7 +251,7 @@ window.addEventListener('pdfloaded', function(evt) { PDFView.load(evt.detail); }, true); -window.addEventListener('scroll', function(evt) { +window.addEventListener('scroll', function onscroll(evt) { var visiblePages = PDFView.getVisiblePages(); for (var i = 0; i < visiblePages.length; i++) { var page = visiblePages[i]; @@ -316,3 +314,19 @@ window.addEventListener("transitionend", function(evt) { }, 500); }, true); + +window.addEventListener("scalechange", function(evt) { + var options = document.getElementById('scaleSelect').options; + for (var i = 0; i < options.length; i++) { + var option = options[i]; + option.selected = (option.value == evt.detail); + } +}, true); + +window.addEventListener("pagechange", function(evt) { + var page = evt.detail; + document.location.hash = page; + document.getElementById("pageNumber").value = page; + document.getElementById("previous").disabled = (page == 1); + document.getElementById("next").disabled = (page == PDFView.pages.length); +}, true); From 406c2b2f2b5dfeda4c5ab1132965e9ad7844e05c Mon Sep 17 00:00:00 2001 From: Vivien Nicolas <21@vingtetun.org> Date: Tue, 23 Aug 2011 16:49:25 +0200 Subject: [PATCH 2/2] Fix a small typo error with the kRasterizerMin usage --- pdf.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pdf.js b/pdf.js index 469eec578..be585046f 100644 --- a/pdf.js +++ b/pdf.js @@ -4727,7 +4727,7 @@ var CanvasGraphics = (function() { var scaleFactorX = 1, scaleFactorY = 1; var font = this.current.font; if (font) { - if (this.current.fontSize < kRasterizerMin) { + if (this.current.fontSize <= kRasterizerMin) { scaleFactorX = scaleFactorY = kScalePrecision; ctx.scale(1 / scaleFactorX, 1 / scaleFactorY); }