Merge pull request #284 from vingtetun/master

Make viewer.js able to display a pdf on an event
This commit is contained in:
Andreas Gal 2011-07-26 07:51:22 -07:00
commit a1cc36fc5d
2 changed files with 24 additions and 8 deletions

13
pdf.js
View File

@ -2313,11 +2313,16 @@ var Lexer = (function() {
} }
if (specialChars[ch.charCodeAt(0)] != 1) { if (specialChars[ch.charCodeAt(0)] != 1) {
var x, x2; var x, x2;
if (((x = ToHexDigit(ch)) == -1) || if ((x = ToHexDigit(ch)) == -1)
((x2 = ToHexDigit(stream.getChar())) == -1)) {
error('Illegal character in hex string'); error('Illegal character in hex string');
break;
} ch = stream.getChar();
while (specialChars[ch.charCodeAt(0)] == 1)
ch = stream.getChar();
if ((x2 = ToHexDigit(ch)) == -1)
error('Illegal character in hex string');
str += String.fromCharCode((x << 4) | x2); str += String.fromCharCode((x << 4) | x2);
} }
} }

View File

@ -29,6 +29,9 @@ function queryParams() {
function open(url) { function open(url) {
document.title = url; document.title = url;
if (url.indexOf("http") == 0)
return;
var req = new XMLHttpRequest(); var req = new XMLHttpRequest();
req.open('GET', url); req.open('GET', url);
req.mozResponseType = req.responseType = 'arraybuffer'; req.mozResponseType = req.responseType = 'arraybuffer';
@ -37,15 +40,23 @@ function open(url) {
if (req.readyState == 4 && req.status == req.expected) { if (req.readyState == 4 && req.status == req.expected) {
var data = (req.mozResponseArrayBuffer || req.mozResponse || var data = (req.mozResponseArrayBuffer || req.mozResponse ||
req.responseArrayBuffer || req.response); req.responseArrayBuffer || req.response);
pdfDocument = new PDFDoc(new Stream(data)); loadDocument(data);
numPages = pdfDocument.numPages;
document.getElementById('numPages').innerHTML = numPages.toString();
goToPage(pageNum);
} }
}; };
req.send(null); req.send(null);
} }
window.addEventListener("pdfloaded", function(aEvent) {
loadDocument(aEvent.detail);
}, true);
function loadDocument(data) {
pdfDocument = new PDFDoc(new Stream(data));
numPages = pdfDocument.numPages;
document.getElementById('numPages').innerHTML = numPages.toString();
goToPage(pageNum);
}
function gotoPage(num) { function gotoPage(num) {
if (0 <= num && num <= numPages) if (0 <= num && num <= numPages)
pageNum = num; pageNum = num;