[Pkg-javascript-commits] [pdf.js] 73/204: Removes examples from jsbin.com
David Prévot
taffit at moszumanska.debian.org
Sat Oct 25 18:50:33 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository pdf.js.
commit de844a882695e6294ddc24b06f4817cc5fad2a4f
Author: Yury Delendik <ydelendik at mozilla.com>
Date: Tue Sep 16 09:24:48 2014 -0500
Removes examples from jsbin.com
---
README.md | 4 +-
examples/learning/helloworld.html | 77 +++++++++++++++++++++
examples/learning/helloworld.pdf | 68 +++++++++++++++++++
examples/learning/prevnext.html | 139 ++++++++++++++++++++++++++++++++++++++
make.js | 2 +
5 files changed, 288 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index ce6c550..a2fd2e5 100644
--- a/README.md
+++ b/README.md
@@ -89,8 +89,8 @@ should be minified for production.
You can play with the PDF.js API directly from your browser through the live
demos below:
-+ Hello world: http://jsbin.com/pdfjs-helloworld-v2/9612/edit#html,live
-+ Simple reader with prev/next page controls: http://jsbin.com/pdfjs-prevnext-v2/6865/edit#html,live
++ [Hello world](http://mozilla.github.io/pdf.js/examples/learning/helloworld.html)
++ [Simple reader with prev/next page controls](http://mozilla.github.io/pdf.js/examples/learning/prevnext.html)
The repo contains a hello world example that you can run locally:
diff --git a/examples/learning/helloworld.html b/examples/learning/helloworld.html
new file mode 100644
index 0000000..b344746
--- /dev/null
+++ b/examples/learning/helloworld.html
@@ -0,0 +1,77 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>'Hello, world!' example</title>
+</head>
+<body>
+
+<h1>'Hello, world!' example</h1>
+
+<canvas id="the-canvas" style="border:1px solid black"></canvas>
+
+<!-- for legacy browsers add compatibility.js -->
+<!--<script src="../compatibility.js"></script>-->
+
+<script src="../../build/pdf.js"></script>
+
+<script id="script">
+ //
+ // If absolute URL from the remote server is provided, configure the CORS
+ // header on that server.
+ //
+ var url = './helloworld.pdf';
+
+ //
+ // Disable workers to avoid yet another cross-origin issue (workers need
+ // the URL of the script to be loaded, and dynamically loading a cross-origin
+ // script does not work).
+ //
+ // PDFJS.disableWorker = true;
+
+ //
+ // If pdf.js must be execute via eval or pdf.worker.js is located at the
+ // different location that pdf.js, specify workerSrc.
+ //
+ // PDFJS.workerSrc = '../../build/pdf.worker.js';
+
+ //
+ // Asynchronous download PDF
+ //
+ PDFJS.getDocument(url).then(function getPdfHelloWorld(pdf) {
+ //
+ // Fetch the first page
+ //
+ pdf.getPage(1).then(function getPageHelloWorld(page) {
+ var scale = 1.5;
+ var viewport = page.getViewport(scale);
+
+ //
+ // Prepare canvas using PDF page dimensions
+ //
+ var canvas = document.getElementById('the-canvas');
+ var context = canvas.getContext('2d');
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+
+ //
+ // Render PDF page into canvas context
+ //
+ var renderContext = {
+ canvasContext: context,
+ viewport: viewport
+ };
+ page.render(renderContext);
+ });
+ });
+</script>
+
+<hr>
+<h2>JavaScript code:</h2>
+<pre id="code"></pre>
+<script>
+ document.getElementById('code').textContent =
+ document.getElementById('script').text;
+</script>
+</body>
+</html>
diff --git a/examples/learning/helloworld.pdf b/examples/learning/helloworld.pdf
new file mode 100644
index 0000000..d98b4e1
--- /dev/null
+++ b/examples/learning/helloworld.pdf
@@ -0,0 +1,68 @@
+%PDF-1.7
+
+1 0 obj % entry point
+<<
+ /Type /Catalog
+ /Pages 2 0 R
+>>
+endobj
+
+2 0 obj
+<<
+ /Type /Pages
+ /MediaBox [ 0 0 200 200 ]
+ /Count 1
+ /Kids [ 3 0 R ]
+>>
+endobj
+
+3 0 obj
+<<
+ /Type /Page
+ /Parent 2 0 R
+ /Resources <<
+ /Font <<
+ /F1 4 0 R
+ >>
+ >>
+ /Contents 5 0 R
+>>
+endobj
+
+4 0 obj
+<<
+ /Type /Font
+ /Subtype /Type1
+ /BaseFont /Times-Roman
+>>
+endobj
+
+5 0 obj % page content
+<<
+ /Length 44
+>>
+stream
+BT
+70 50 TD
+/F1 12 Tf
+(Hello, world!) Tj
+ET
+endstream
+endobj
+
+xref
+0 6
+0000000000 65535 f
+0000000010 00000 n
+0000000079 00000 n
+0000000173 00000 n
+0000000301 00000 n
+0000000380 00000 n
+trailer
+<<
+ /Size 6
+ /Root 1 0 R
+>>
+startxref
+492
+%%EOF
\ No newline at end of file
diff --git a/examples/learning/prevnext.html b/examples/learning/prevnext.html
new file mode 100644
index 0000000..42c1f1b
--- /dev/null
+++ b/examples/learning/prevnext.html
@@ -0,0 +1,139 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>Previous/Next example</title>
+</head>
+<body>
+
+<h1>'Previous/Next' example</h1>
+
+<div>
+ <button id="prev">Previous</button>
+ <button id="next">Next</button>
+
+ <span>Page: <span id="page_num"></span> / <span id="page_count"></span></span>
+</div>
+
+<div>
+ <canvas id="the-canvas" style="border:1px solid black"></canvas>
+</div>
+
+<!-- for legacy browsers add compatibility.js -->
+<!--<script src="../compatibility.js"></script>-->
+
+<script src="../../build/pdf.js"></script>
+
+<script id="script">
+ //
+ // If absolute URL from the remote server is provided, configure the CORS
+ // header on that server.
+ //
+ var url = '../../web/compressed.tracemonkey-pldi-09.pdf';
+
+
+ //
+ // Disable workers to avoid yet another cross-origin issue (workers need
+ // the URL of the script to be loaded, and dynamically loading a cross-origin
+ // script does not work).
+ //
+ // PDFJS.disableWorker = true;
+
+ //
+ // If pdf.js must be execute via eval or pdf.worker.js is located at the
+ // different location that pdf.js, specify workerSrc.
+ //
+ // PDFJS.workerSrc = '../../build/pdf.worker.js';
+
+ var pdfDoc = null,
+ pageNum = 1,
+ pageRendering = false,
+ pageNumPending = null,
+ scale = 0.8,
+ canvas = document.getElementById('the-canvas'),
+ ctx = canvas.getContext('2d');
+
+ /**
+ * Get page info from document, resize canvas accordingly, and render page.
+ * @param num Page number.
+ */
+ function renderPage(num) {
+ pageRendering = true;
+ // Using promise to fetch the page
+ pdfDoc.getPage(num).then(function(page) {
+ var viewport = page.getViewport(scale);
+ canvas.height = viewport.height;
+ canvas.width = viewport.width;
+
+ // Render PDF page into canvas context
+ var renderContext = {
+ canvasContext: ctx,
+ viewport: viewport
+ };
+ var renderTask = page.render(renderContext);
+
+ // Wait for rendering to finish
+ renderTask.promise.then(function () {
+ pageRendering = false;
+ if (pageNumPending !== null) {
+ // New page rendering is pending
+ renderPage(pageNumPending);
+ pageNumPending = null;
+ }
+ });
+ });
+
+ // Update page counters
+ document.getElementById('page_num').textContent = pageNum;
+ }
+
+ /**
+ * If another page rendering in progress, waits until the rendering is
+ * finised. Otherwise, executes rendering immediately.
+ */
+ function queueRenderPage(num) {
+ if (pageRendering) {
+ pageNumPending = num;
+ } else {
+ renderPage(num);
+ }
+ }
+
+ /**
+ * Displays previous page.
+ */
+ function onPrevPage() {
+ if (pageNum <= 1) {
+ return;
+ }
+ pageNum--;
+ queueRenderPage(pageNum);
+ }
+ document.getElementById('prev').addEventListener('click', onPrevPage);
+
+ /**
+ * Displays next page.
+ */
+ function onNextPage() {
+ if (pageNum >= pdfDoc.numPages) {
+ return;
+ }
+ pageNum++;
+ queueRenderPage(pageNum);
+ }
+ document.getElementById('next').addEventListener('click', onNextPage);
+
+ /**
+ * Asynchronously downloads PDF.
+ */
+ PDFJS.getDocument(url).then(function (pdfDoc_) {
+ pdfDoc = pdfDoc_;
+ document.getElementById('page_count').textContent = pdfDoc.numPages;
+
+ // Initial/first page rendering
+ renderPage(pageNum);
+ });
+</script>
+
+</body>
+</html>
diff --git a/make.js b/make.js
index f923bc6..002d4de 100644
--- a/make.js
+++ b/make.js
@@ -184,6 +184,7 @@ target.web = function() {
mkdir('-p', GH_PAGES_DIR + EXTENSION_SRC_DIR + '/chromium');
mkdir('-p', GH_PAGES_DIR + EXTENSION_SRC_DIR + '/b2g');
mkdir('-p', GH_PAGES_DIR + '/api/draft/');
+ mkdir('-p', GH_PAGES_DIR + '/examples/');
cp('-R', GENERIC_DIR + '/*', GH_PAGES_DIR);
cp(FIREFOX_BUILD_DIR + '/*.xpi', FIREFOX_BUILD_DIR + '/*.rdf',
@@ -191,6 +192,7 @@ target.web = function() {
cp(CHROME_BUILD_DIR + '/*.crx', FIREFOX_BUILD_DIR + '/*.rdf',
GH_PAGES_DIR + EXTENSION_SRC_DIR + 'chromium/');
cp('-R', 'test/features', GH_PAGES_DIR);
+ cp('-R', 'examples/learning', GH_PAGES_DIR + '/examples/');
cp('-R', B2G_BUILD_DIR, GH_PAGES_DIR + EXTENSION_SRC_DIR + 'b2g/');
cp('-R', JSDOC_DIR + '/*', GH_PAGES_DIR + '/api/draft/');
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/pdf.js.git
More information about the Pkg-javascript-commits
mailing list