diff --git a/make.js b/make.js index 3423d0b6c..d7a7b96bf 100644 --- a/make.js +++ b/make.js @@ -484,7 +484,7 @@ target.bundle = function(args) { echo(); echo('### Bundling files into ' + BUILD_TARGET); - function bundle(filename, outfilename, files, distname) { + function bundle(filename, outfilename, files, distname, isMainFile) { var bundleContent = cat(files), bundleVersion = VERSION, bundleBuild = exec('git log --format="%h" -n 1', @@ -511,7 +511,8 @@ target.bundle = function(args) { BUNDLE_VERSION: bundleVersion, BUNDLE_BUILD: bundleBuild, BUNDLE_AMD_NAME: amdName, - BUNDLE_JS_NAME: jsName})); + BUNDLE_JS_NAME: jsName, + MAIN_FILE: isMainFile})); } if (!test('-d', BUILD_DIR)) { @@ -521,7 +522,6 @@ target.bundle = function(args) { var umd = require('./external/umdutils/verifier.js'); var MAIN_SRC_FILES = [ SRC_DIR + 'display/annotation_layer.js', - SRC_DIR + 'display/metadata.js', SRC_DIR + 'display/text_layer.js', SRC_DIR + 'display/api.js' ]; @@ -560,13 +560,13 @@ target.bundle = function(args) { cd(SRC_DIR); - bundle('pdf.js', ROOT_DIR + BUILD_TARGET, mainFiles, mainFileName); + bundle('pdf.js', ROOT_DIR + BUILD_TARGET, mainFiles, mainFileName, true); if (workerFiles) { var srcCopy = ROOT_DIR + BUILD_DIR + 'pdf.worker.js.temp'; cp('pdf.js', srcCopy); bundle(srcCopy, ROOT_DIR + BUILD_WORKER_TARGET, workerFiles, - workerFileName); + workerFileName, false); rm(srcCopy); } }; diff --git a/src/display/api.js b/src/display/api.js index 6a01c50d3..864a80ebe 100644 --- a/src/display/api.js +++ b/src/display/api.js @@ -20,17 +20,18 @@ if (typeof define === 'function' && define.amd) { define('pdfjs/display/api', ['exports', 'pdfjs/shared/util', 'pdfjs/display/font_loader', 'pdfjs/display/canvas', - 'pdfjs/shared/global', 'require'], factory); + 'pdfjs/display/metadata', 'pdfjs/shared/global', 'require'], factory); } else if (typeof exports !== 'undefined') { factory(exports, require('../shared/util.js'), require('./font_loader.js'), - require('./canvas.js'), require('../shared/global.js')); + require('./canvas.js'), require('./metadata.js'), + require('../shared/global.js')); } else { factory((root.pdfjsDisplayAPI = {}), root.pdfjsSharedUtil, root.pdfjsDisplayFontLoader, root.pdfjsDisplayCanvas, - root.pdfjsSharedGlobal); + root.pdfjsDisplayMetadata, root.pdfjsSharedGlobal); } }(this, function (exports, sharedUtil, displayFontLoader, displayCanvas, - sharedGlobal, amdRequire) { + displayMetadata, sharedGlobal, amdRequire) { var InvalidPDFException = sharedUtil.InvalidPDFException; var MessageHandler = sharedUtil.MessageHandler; @@ -54,6 +55,7 @@ var FontFaceObject = displayFontLoader.FontFaceObject; var FontLoader = displayFontLoader.FontLoader; var CanvasGraphics = displayCanvas.CanvasGraphics; var createScratchCanvas = displayCanvas.createScratchCanvas; +var Metadata = displayMetadata.Metadata; var PDFJS = sharedGlobal.PDFJS; var globalScope = sharedGlobal.globalScope; @@ -1818,7 +1820,7 @@ var WorkerTransport = (function WorkerTransportClosure() { then(function transportMetadata(results) { return { info: results[0], - metadata: (results[1] ? new PDFJS.Metadata(results[1]) : null) + metadata: (results[1] ? new Metadata(results[1]) : null) }; }); }, diff --git a/src/main_loader.js b/src/main_loader.js new file mode 100644 index 000000000..dca02af08 --- /dev/null +++ b/src/main_loader.js @@ -0,0 +1,49 @@ +/* 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. + */ + +'use strict'; + +(function (root, factory) { + if (typeof define === 'function' && define.amd) { + define('pdfjs/main_loader', ['exports', 'pdfjs/display/api', + 'pdfjs/display/annotation_layer', 'pdfjs/display/text_layer', + 'pdfjs/display/dom_utils', 'pdfjs/shared/util', 'pdfjs/shared/global'], + factory); + } else if (typeof exports !== 'undefined') { + factory(exports, require('./display/api.js'), + require('./display/annotation_layer.js'), + require('./display/text_layer.js'), require('./display/dom_utils.js'), + require('./shared/util.js'), require('./shared/global.js')); + } else { + factory((root.pdfjsMainLoader = {}), root.pdfjsDisplayAPI, + root.pdfjsDisplayAnnotationLayer, root.pdfjsDisplayTextLayer, + root.pdfjsDisplayDOMUtils, root.pdfjsSharedUtil, root.pdfjsSharedGlobal); + } +}(this, function (exports, displayAPI, displayAnnotationLayer, + displayTextLayer, displayDOMUtils, sharedUtil, sharedGlobal) { + + // Sync the exports below with ./pdf.js file/template. + exports.PDFJS = sharedGlobal.PDFJS; + + exports.getDocument = displayAPI.getDocument; + exports.PDFDataRangeTransport = displayAPI.PDFDataRangeTransport; + exports.renderTextLayer = displayTextLayer.renderTextLayer; + exports.AnnotationLayer = displayAnnotationLayer.AnnotationLayer; + exports.CustomStyle = displayDOMUtils.CustomStyle; + exports.PasswordResponses = sharedUtil.PasswordResponses; + exports.InvalidPDFException = sharedUtil.InvalidPDFException; + exports.MissingPDFException = sharedUtil.MissingPDFException; + exports.UnexpectedResponseException = sharedUtil.UnexpectedResponseException; +})); diff --git a/src/pdf.js b/src/pdf.js index c5276e5ba..be677347a 100644 --- a/src/pdf.js +++ b/src/pdf.js @@ -44,4 +44,19 @@ }).call(pdfjsLibs); exports.PDFJS = pdfjsLibs.pdfjsSharedGlobal.PDFJS; + +//#if MAIN_FILE + exports.getDocument = pdfjsLibs.pdfjsDisplayAPI.getDocument; + exports.PDFDataRangeTransport = + pdfjsLibs.pdfjsDisplayAPI.PDFDataRangeTransport; + exports.renderTextLayer = pdfjsLibs.pdfjsDisplayTextLayer.renderTextLayer; + exports.AnnotationLayer = + pdfjsLibs.pdfjsDisplayAnnotationLayer.AnnotationLayer; + exports.CustomStyle = pdfjsLibs.pdfjsDisplayDOMUtils.CustomStyle; + exports.PasswordResponses = pdfjsLibs.pdfjsSharedUtil.PasswordResponses; + exports.InvalidPDFException = pdfjsLibs.pdfjsSharedUtil.InvalidPDFException; + exports.MissingPDFException = pdfjsLibs.pdfjsSharedUtil.MissingPDFException; + exports.UnexpectedResponseException = + pdfjsLibs.pdfjsSharedUtil.UnexpectedResponseException; +//#endif })); diff --git a/web/viewer.js b/web/viewer.js index f3684348d..c56aff64b 100644 --- a/web/viewer.js +++ b/web/viewer.js @@ -1335,11 +1335,8 @@ window.PDFView = PDFViewerApplication; // obsolete name, using it as an alias function webViewerLoad(evt) { //#if !PRODUCTION require.config({paths: {'pdfjs': '../src'}}); - require(['pdfjs/display/api', - 'pdfjs/display/annotation_layer', - 'pdfjs/display/text_layer', - 'pdfjs/display/metadata'], - function (api, annotationLayer, textLayer, metadata) { + require(['pdfjs/main_loader'], + function (loader) { configure(PDFJS); PDFViewerApplication.initialize().then(webViewerInitialized); });