Adds/modifies examples for node.js and webpack.
This commit is contained in:
parent
9228e1ffcf
commit
79c2f69c32
@ -120,9 +120,17 @@ DOMElement.prototype = {
|
||||
},
|
||||
}
|
||||
|
||||
global.window = global;
|
||||
|
||||
global.navigator = { userAgent: 'node' };
|
||||
|
||||
global.document = {
|
||||
childNodes : [],
|
||||
|
||||
get currentScript() {
|
||||
return { src: '' };
|
||||
},
|
||||
|
||||
get documentElement() {
|
||||
return this;
|
||||
},
|
||||
|
@ -9,13 +9,11 @@
|
||||
|
||||
var fs = require('fs');
|
||||
|
||||
// HACK few hacks to let PDF.js be loaded not as a module in global space.
|
||||
global.window = global;
|
||||
global.navigator = { userAgent: "node" };
|
||||
global.PDFJS = {};
|
||||
// HACK adding DOMParser to read XMP metadata.
|
||||
global.DOMParser = require('./domparsermock.js').DOMParserMock;
|
||||
|
||||
require('../../build/singlefile/build/pdf.combined.js');
|
||||
// Run `node make dist` to generate 'pdfjs-dist' npm package files.
|
||||
require('../../build/dist');
|
||||
|
||||
// Loading file from file system into typed array
|
||||
var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
|
||||
|
@ -8,14 +8,10 @@
|
||||
var fs = require('fs');
|
||||
|
||||
// HACK few hacks to let PDF.js be loaded not as a module in global space.
|
||||
global.window = global;
|
||||
global.navigator = { userAgent: 'node' };
|
||||
global.PDFJS = {};
|
||||
|
||||
require('./domstubs.js');
|
||||
|
||||
PDFJS.workerSrc = true;
|
||||
require('../../build/singlefile/build/pdf.combined.js');
|
||||
// Run `node make dist` to generate 'pdfjs-dist' npm package files.
|
||||
require('../../build/dist');
|
||||
|
||||
// Loading file from file system into typed array
|
||||
var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
|
||||
|
1
examples/webpack/.gitignore
vendored
Normal file
1
examples/webpack/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
node_modules/
|
18
examples/webpack/README.md
Normal file
18
examples/webpack/README.md
Normal file
@ -0,0 +1,18 @@
|
||||
## Overview
|
||||
|
||||
Example to demonstrate PDF.js library usage with webpack.
|
||||
|
||||
## Getting started
|
||||
|
||||
Build project and install the example dependencies:
|
||||
|
||||
$ node make dist
|
||||
$ cd examples/webpack
|
||||
$ npm install
|
||||
|
||||
To build webpack bundles, run `node_modules/.bin/webpack`. If you are running
|
||||
a web server, you can observe the build results at
|
||||
http://localhost:8888/examples/webpack/index.html
|
||||
|
||||
See main.js and webpack.config.js files. Please notice that PDF.js packaging
|
||||
requires 'entry' loader.
|
11
examples/webpack/index.html
Normal file
11
examples/webpack/index.html
Normal file
@ -0,0 +1,11 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>webpack example</title>
|
||||
<script src="../../build/webpack/bundle.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
<canvas id="theCanvas"></canvas>
|
||||
</body>
|
||||
</html>
|
32
examples/webpack/main.js
Normal file
32
examples/webpack/main.js
Normal file
@ -0,0 +1,32 @@
|
||||
// Any copyright is dedicated to the Public Domain.
|
||||
// http://creativecommons.org/licenses/publicdomain/
|
||||
|
||||
// Hello world example for webpack.
|
||||
|
||||
require('pdfjs-dist');
|
||||
|
||||
var pdfPath = '../helloworld/helloworld.pdf';
|
||||
|
||||
// It is also possible to disable workers via `PDFJS.disableWorker = true`,
|
||||
// however that might degrade the UI performance in web browsers.
|
||||
|
||||
// Loading a document.
|
||||
var loadingTask = PDFJS.getDocument(pdfPath);
|
||||
loadingTask.promise.then(function (pdfDocument) {
|
||||
// Request a first page
|
||||
return pdfDocument.getPage(1).then(function (pdfPage) {
|
||||
// Display page on the existing canvas with 100% scale.
|
||||
var viewport = pdfPage.getViewport(1.0);
|
||||
var canvas = document.getElementById('theCanvas');
|
||||
canvas.width = viewport.width;
|
||||
canvas.height = viewport.height;
|
||||
var ctx = canvas.getContext('2d');
|
||||
var renderTask = pdfPage.render({
|
||||
canvasContext: ctx,
|
||||
viewport: viewport
|
||||
});
|
||||
return renderTask.promise;
|
||||
});
|
||||
}).catch(function (reason) {
|
||||
console.error('Error: ' + reason);
|
||||
});
|
9
examples/webpack/package.json
Normal file
9
examples/webpack/package.json
Normal file
@ -0,0 +1,9 @@
|
||||
{
|
||||
"name": "webpack-pdf.js-example",
|
||||
"version": "0.1.0",
|
||||
"devDependencies": {
|
||||
"webpack": "~1.12.9",
|
||||
"entry-loader": "~0.1.0",
|
||||
"pdfjs-dist": "../../build/dist"
|
||||
}
|
||||
}
|
20
examples/webpack/webpack.config.js
Normal file
20
examples/webpack/webpack.config.js
Normal file
@ -0,0 +1,20 @@
|
||||
var webpack = require('webpack');
|
||||
var path = require('path');
|
||||
|
||||
module.exports = {
|
||||
context: __dirname,
|
||||
entry: './main.js',
|
||||
output: {
|
||||
path: path.join(__dirname, '../../build/webpack'),
|
||||
publicPath: '../../build/webpack/',
|
||||
filename: 'bundle.js'
|
||||
},
|
||||
plugins: [
|
||||
new webpack.optimize.UglifyJsPlugin({
|
||||
compressor: {
|
||||
screw_ie8: true,
|
||||
warnings: false
|
||||
}
|
||||
})
|
||||
]
|
||||
};
|
2
make.js
2
make.js
@ -149,6 +149,7 @@ target.generic = function() {
|
||||
};
|
||||
builder.build(setup);
|
||||
|
||||
cleanupJSSource(GENERIC_DIR + '/build/pdf.js');
|
||||
cleanupJSSource(GENERIC_DIR + '/web/viewer.js');
|
||||
cleanupCSSSource(GENERIC_DIR + '/web/viewer.css');
|
||||
};
|
||||
@ -325,6 +326,7 @@ target.dist = function() {
|
||||
var npmManifest = {
|
||||
name: DIST_NAME,
|
||||
version: VERSION,
|
||||
main: 'build/pdf.js',
|
||||
description: DIST_DESCRIPTION,
|
||||
keywords: DIST_KEYWORDS,
|
||||
homepage: DIST_HOMEPAGE,
|
||||
|
@ -5,6 +5,7 @@
|
||||
"jsdoc": "^3.3.0-alpha9",
|
||||
"jshint": "~2.8.0",
|
||||
"wintersmith": "^2.0.0",
|
||||
"node-ensure": "^0.0.0",
|
||||
"rimraf": "^2.4.1",
|
||||
"shelljs": "~0.4.0",
|
||||
"typogr": "~0.6.5",
|
||||
|
@ -12,7 +12,7 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/* globals NetworkManager */
|
||||
/* globals NetworkManager, module */
|
||||
|
||||
'use strict';
|
||||
|
||||
@ -648,7 +648,8 @@ var workerConsole = {
|
||||
|
||||
|
||||
// Worker thread?
|
||||
if (typeof window === 'undefined' && typeof require === 'undefined') {
|
||||
if (typeof window === 'undefined' &&
|
||||
!(typeof module !== 'undefined' && module.require)) {
|
||||
if (!('console' in globalScope)) {
|
||||
globalScope.console = workerConsole;
|
||||
}
|
||||
|
@ -58,6 +58,14 @@ var globalScope = sharedGlobal.globalScope;
|
||||
|
||||
var DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
|
||||
|
||||
//#if PRODUCTION && !SINGLE_FILE
|
||||
//#if GENERIC
|
||||
//#include ../src/frameworks.js
|
||||
//#else
|
||||
//var fakeWorkerFilesLoader = null;
|
||||
//#endif
|
||||
//#endif
|
||||
|
||||
/**
|
||||
* The maximum allowed image size in total pixels e.g. width * height. Images
|
||||
* above this value will not be drawn. Use -1 for no limit.
|
||||
@ -1192,7 +1200,10 @@ var PDFWorker = (function PDFWorkerClosure() {
|
||||
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
||||
//#endif
|
||||
//#if PRODUCTION && !SINGLE_FILE
|
||||
// Util.loadScript(PDFJS.workerSrc, function() {
|
||||
// var loader = fakeWorkerFilesLoader || function (callback) {
|
||||
// Util.loadScript(PDFJS.workerSrc, callback);
|
||||
// };
|
||||
// loader(function () {
|
||||
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
||||
// });
|
||||
//#endif
|
||||
@ -1295,8 +1306,10 @@ var PDFWorker = (function PDFWorkerClosure() {
|
||||
},
|
||||
|
||||
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
||||
if (!globalScope.PDFJS.disableWorker) {
|
||||
warn('Setting up fake worker.');
|
||||
globalScope.PDFJS.disableWorker = true;
|
||||
}
|
||||
|
||||
setupFakeWorkerGlobal().then(function () {
|
||||
if (this.destroyed) {
|
||||
|
40
src/frameworks.js
Normal file
40
src/frameworks.js
Normal file
@ -0,0 +1,40 @@
|
||||
/* Copyright 2015 Mozilla Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/* globals PDFJS, require, module */
|
||||
|
||||
// included from api.js for GENERIC build
|
||||
|
||||
'use strict';
|
||||
|
||||
var useRequireEnsure = false;
|
||||
if (typeof module !== 'undefined' && module.require) {
|
||||
// node.js - disable worker and set require.ensure.
|
||||
PDFJS.disableWorker = true;
|
||||
if (typeof require.ensure === 'undefined') {
|
||||
require.ensure = require('node-ensure');
|
||||
}
|
||||
useRequireEnsure = true;
|
||||
}
|
||||
if (typeof __webpack_require__ !== 'undefined') {
|
||||
// Webpack - get/bundle pdf.worker.js as additional file.
|
||||
PDFJS.workerSrc = require('entry?name=[hash]-worker.js!./pdf.worker.js');
|
||||
useRequireEnsure = true;
|
||||
}
|
||||
var fakeWorkerFilesLoader = useRequireEnsure && function (callback) {
|
||||
require.ensure([], function () {
|
||||
require('./pdf.worker.js');
|
||||
callback();
|
||||
});
|
||||
};
|
@ -12,12 +12,13 @@
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
/*jshint globalstrict: false */
|
||||
/* globals PDFJS */
|
||||
/* jshint globalstrict: false */
|
||||
/* globals PDFJS, global */
|
||||
|
||||
// Initializing PDFJS global object (if still undefined)
|
||||
if (typeof PDFJS === 'undefined') {
|
||||
(typeof window !== 'undefined' ? window : this).PDFJS = {};
|
||||
(typeof window !== 'undefined' ? window :
|
||||
typeof global !== 'undefined' ? global : this).PDFJS = {};
|
||||
}
|
||||
|
||||
//#if BUNDLE_VERSION
|
||||
|
Loading…
Reference in New Issue
Block a user