From de6c92a96dace1a47dbfda44c9fa7ab6370a7f5e Mon Sep 17 00:00:00 2001 From: Tim van der Meij <timvandermeij@gmail.com> Date: Wed, 12 Oct 2016 21:13:37 +0200 Subject: [PATCH] Examples: improve SVG viewer This patch: - resolves a warning in the console about missing character encoding; - makes the viewer use the same background color and PDF file as the regular viewer; - simplifies the example to bring it more in line with the other examples. --- examples/svgviewer/index.html | 17 ++++++++++------- examples/svgviewer/viewer.js | 27 ++++++++------------------- 2 files changed, 18 insertions(+), 26 deletions(-) diff --git a/examples/svgviewer/index.html b/examples/svgviewer/index.html index 931b595a3..70bf357ed 100644 --- a/examples/svgviewer/index.html +++ b/examples/svgviewer/index.html @@ -2,21 +2,24 @@ <html> <head> + <meta charset="utf-8"> + + <title>PDF.js SVG viewer example</title> + <script src="../../node_modules/requirejs/require.js"></script> <script src="viewer.js"></script> + <style> body { - background-color: gray; + background-color: #404040; } .pageContainer { - border : 1px solid black; - margin : 5px auto; - background-color : white; + border: 1px solid #000; + margin: 5px auto; + background-color: #FFF; } - </style> - - <title>SVG Viewer Example</title> + </style> </head> <body> diff --git a/examples/svgviewer/viewer.js b/examples/svgviewer/viewer.js index 51f5ad2dd..7d330419e 100644 --- a/examples/svgviewer/viewer.js +++ b/examples/svgviewer/viewer.js @@ -1,40 +1,29 @@ 'use strict'; +var DEFAULT_SCALE = 1.5; + // Parse query string to extract some parameters (it can fail for some input) var query = document.location.href.replace(/^[^?]*(\?([^#]*))?(#.*)?/, '$2'); var queryParams = query ? JSON.parse('{' + query.split('&').map(function (a) { return a.split('=').map(decodeURIComponent).map(JSON.stringify).join(': '); }).join(',') + '}') : {}; -var url = queryParams.file || '../../test/pdfs/liveprogramming.pdf'; -var scale = +queryParams.scale || 1.5; +var url = queryParams.file || '../../web/compressed.tracemonkey-pldi-09.pdf'; function renderDocument(pdf, svgLib) { - var numPages = pdf.numPages; - // Using promise to fetch the page - - // For testing only. - var MAX_NUM_PAGES = 50; - var ii = Math.min(MAX_NUM_PAGES, numPages); - var promise = Promise.resolve(); - for (var i = 1; i <= ii; i++) { - var anchor = document.createElement('a'); - anchor.setAttribute('name', 'page=' + i); - anchor.setAttribute('title', 'Page ' + i); - document.body.appendChild(anchor); - + for (var i = 1; i <= pdf.numPages; i++) { // Using promise to fetch and render the next page - promise = promise.then(function (pageNum, anchor) { + promise = promise.then(function (pageNum) { return pdf.getPage(pageNum).then(function (page) { - var viewport = page.getViewport(scale); + var viewport = page.getViewport(DEFAULT_SCALE); var container = document.createElement('div'); container.id = 'pageContainer' + pageNum; container.className = 'pageContainer'; container.style.width = viewport.width + 'px'; container.style.height = viewport.height + 'px'; - anchor.appendChild(container); + document.body.appendChild(container); return page.getOperatorList().then(function (opList) { var svgGfx = new svgLib.SVGGraphics(page.commonObjs, page.objs); @@ -43,7 +32,7 @@ function renderDocument(pdf, svgLib) { }); }); }); - }.bind(null, i, anchor)); + }.bind(null, i)); } }