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() { | ||||
|       warn('Setting up fake worker.'); | ||||
|       globalScope.PDFJS.disableWorker = true; | ||||
|       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…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user