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 = {
|
global.document = {
|
||||||
childNodes : [],
|
childNodes : [],
|
||||||
|
|
||||||
|
get currentScript() {
|
||||||
|
return { src: '' };
|
||||||
|
},
|
||||||
|
|
||||||
get documentElement() {
|
get documentElement() {
|
||||||
return this;
|
return this;
|
||||||
},
|
},
|
||||||
|
@ -9,13 +9,11 @@
|
|||||||
|
|
||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
// HACK few hacks to let PDF.js be loaded not as a module in global space.
|
// HACK adding DOMParser to read XMP metadata.
|
||||||
global.window = global;
|
|
||||||
global.navigator = { userAgent: "node" };
|
|
||||||
global.PDFJS = {};
|
|
||||||
global.DOMParser = require('./domparsermock.js').DOMParserMock;
|
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
|
// Loading file from file system into typed array
|
||||||
var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
|
var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
|
||||||
|
@ -8,14 +8,10 @@
|
|||||||
var fs = require('fs');
|
var fs = require('fs');
|
||||||
|
|
||||||
// HACK few hacks to let PDF.js be loaded not as a module in global space.
|
// 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');
|
require('./domstubs.js');
|
||||||
|
|
||||||
PDFJS.workerSrc = true;
|
// Run `node make dist` to generate 'pdfjs-dist' npm package files.
|
||||||
require('../../build/singlefile/build/pdf.combined.js');
|
require('../../build/dist');
|
||||||
|
|
||||||
// Loading file from file system into typed array
|
// Loading file from file system into typed array
|
||||||
var pdfPath = process.argv[2] || '../../web/compressed.tracemonkey-pldi-09.pdf';
|
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);
|
builder.build(setup);
|
||||||
|
|
||||||
|
cleanupJSSource(GENERIC_DIR + '/build/pdf.js');
|
||||||
cleanupJSSource(GENERIC_DIR + '/web/viewer.js');
|
cleanupJSSource(GENERIC_DIR + '/web/viewer.js');
|
||||||
cleanupCSSSource(GENERIC_DIR + '/web/viewer.css');
|
cleanupCSSSource(GENERIC_DIR + '/web/viewer.css');
|
||||||
};
|
};
|
||||||
@ -325,6 +326,7 @@ target.dist = function() {
|
|||||||
var npmManifest = {
|
var npmManifest = {
|
||||||
name: DIST_NAME,
|
name: DIST_NAME,
|
||||||
version: VERSION,
|
version: VERSION,
|
||||||
|
main: 'build/pdf.js',
|
||||||
description: DIST_DESCRIPTION,
|
description: DIST_DESCRIPTION,
|
||||||
keywords: DIST_KEYWORDS,
|
keywords: DIST_KEYWORDS,
|
||||||
homepage: DIST_HOMEPAGE,
|
homepage: DIST_HOMEPAGE,
|
||||||
|
@ -5,6 +5,7 @@
|
|||||||
"jsdoc": "^3.3.0-alpha9",
|
"jsdoc": "^3.3.0-alpha9",
|
||||||
"jshint": "~2.8.0",
|
"jshint": "~2.8.0",
|
||||||
"wintersmith": "^2.0.0",
|
"wintersmith": "^2.0.0",
|
||||||
|
"node-ensure": "^0.0.0",
|
||||||
"rimraf": "^2.4.1",
|
"rimraf": "^2.4.1",
|
||||||
"shelljs": "~0.4.0",
|
"shelljs": "~0.4.0",
|
||||||
"typogr": "~0.6.5",
|
"typogr": "~0.6.5",
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
/* globals NetworkManager */
|
/* globals NetworkManager, module */
|
||||||
|
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
@ -648,7 +648,8 @@ var workerConsole = {
|
|||||||
|
|
||||||
|
|
||||||
// Worker thread?
|
// Worker thread?
|
||||||
if (typeof window === 'undefined' && typeof require === 'undefined') {
|
if (typeof window === 'undefined' &&
|
||||||
|
!(typeof module !== 'undefined' && module.require)) {
|
||||||
if (!('console' in globalScope)) {
|
if (!('console' in globalScope)) {
|
||||||
globalScope.console = workerConsole;
|
globalScope.console = workerConsole;
|
||||||
}
|
}
|
||||||
|
@ -58,6 +58,14 @@ var globalScope = sharedGlobal.globalScope;
|
|||||||
|
|
||||||
var DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536
|
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
|
* 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.
|
* above this value will not be drawn. Use -1 for no limit.
|
||||||
@ -1192,7 +1200,10 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
||||||
//#endif
|
//#endif
|
||||||
//#if PRODUCTION && !SINGLE_FILE
|
//#if PRODUCTION && !SINGLE_FILE
|
||||||
// Util.loadScript(PDFJS.workerSrc, function() {
|
// var loader = fakeWorkerFilesLoader || function (callback) {
|
||||||
|
// Util.loadScript(PDFJS.workerSrc, callback);
|
||||||
|
// };
|
||||||
|
// loader(function () {
|
||||||
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
// PDFJS.fakeWorkerFilesLoadedCapability.resolve();
|
||||||
// });
|
// });
|
||||||
//#endif
|
//#endif
|
||||||
@ -1295,8 +1306,10 @@ var PDFWorker = (function PDFWorkerClosure() {
|
|||||||
},
|
},
|
||||||
|
|
||||||
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
_setupFakeWorker: function PDFWorker_setupFakeWorker() {
|
||||||
|
if (!globalScope.PDFJS.disableWorker) {
|
||||||
warn('Setting up fake worker.');
|
warn('Setting up fake worker.');
|
||||||
globalScope.PDFJS.disableWorker = true;
|
globalScope.PDFJS.disableWorker = true;
|
||||||
|
}
|
||||||
|
|
||||||
setupFakeWorkerGlobal().then(function () {
|
setupFakeWorkerGlobal().then(function () {
|
||||||
if (this.destroyed) {
|
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
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
/*jshint globalstrict: false */
|
/* jshint globalstrict: false */
|
||||||
/* globals PDFJS */
|
/* globals PDFJS, global */
|
||||||
|
|
||||||
// Initializing PDFJS global object (if still undefined)
|
// Initializing PDFJS global object (if still undefined)
|
||||||
if (typeof PDFJS === 'undefined') {
|
if (typeof PDFJS === 'undefined') {
|
||||||
(typeof window !== 'undefined' ? window : this).PDFJS = {};
|
(typeof window !== 'undefined' ? window :
|
||||||
|
typeof global !== 'undefined' ? global : this).PDFJS = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
//#if BUNDLE_VERSION
|
//#if BUNDLE_VERSION
|
||||||
|
Loading…
x
Reference in New Issue
Block a user