mirror of
https://github.com/mozilla/pdf.js.git
synced 2026-02-08 00:21:11 +01:00
This includes the information in the core and display layers. The date parsing logic from the document properties is rewritten according to the specification and now includes unit tests. Moreover, missing unit tests for the color of a popup annotation have been added. Finally the styling of the popup is changed slightly to make the text a bit smaller (it's currently quite large in comparison to other viewers) and to make the drop shadow a bit more subtle. The former is done to be able to easily include the modification date in the popup similar to how other viewers do this.
121 lines
5.4 KiB
JavaScript
121 lines
5.4 KiB
JavaScript
/* Copyright 2012 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.
|
|
*/
|
|
/* eslint-disable no-unused-vars */
|
|
|
|
'use strict';
|
|
|
|
var pdfjsVersion =
|
|
typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;
|
|
var pdfjsBuild =
|
|
typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;
|
|
|
|
var pdfjsSharedUtil = require('./shared/util.js');
|
|
var pdfjsDisplayAPI = require('./display/api.js');
|
|
var pdfjsDisplayTextLayer = require('./display/text_layer.js');
|
|
var pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');
|
|
var pdfjsDisplayDisplayUtils = require('./display/display_utils.js');
|
|
var pdfjsDisplaySVG = require('./display/svg.js');
|
|
let pdfjsDisplayWorkerOptions = require('./display/worker_options.js');
|
|
let pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');
|
|
|
|
if (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {
|
|
const isNodeJS = require('./shared/is_node.js');
|
|
if (isNodeJS()) {
|
|
let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;
|
|
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
|
return new PDFNodeStream(params);
|
|
});
|
|
} else {
|
|
let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;
|
|
let PDFFetchStream;
|
|
if (pdfjsDisplayDisplayUtils.isFetchSupported()) {
|
|
PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;
|
|
}
|
|
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
|
if (PDFFetchStream &&
|
|
pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {
|
|
return new PDFFetchStream(params);
|
|
}
|
|
return new PDFNetworkStream(params);
|
|
});
|
|
}
|
|
} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {
|
|
let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;
|
|
let PDFFetchStream;
|
|
let isChromeWithFetchCredentials = function() {
|
|
// fetch does not include credentials until Chrome 61.0.3138.0 and later.
|
|
// https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707
|
|
try {
|
|
// Indexed properties on window are read-only in Chrome 61.0.3151.0+
|
|
// https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190
|
|
window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.
|
|
delete window[999];
|
|
return false;
|
|
} catch (e) {
|
|
return true;
|
|
}
|
|
};
|
|
if (pdfjsDisplayDisplayUtils.isFetchSupported() &&
|
|
isChromeWithFetchCredentials()) {
|
|
PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;
|
|
}
|
|
pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {
|
|
if (PDFFetchStream &&
|
|
pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {
|
|
return new PDFFetchStream(params);
|
|
}
|
|
return new PDFNetworkStream(params);
|
|
});
|
|
}
|
|
|
|
exports.build = pdfjsDisplayAPI.build;
|
|
exports.version = pdfjsDisplayAPI.version;
|
|
exports.getDocument = pdfjsDisplayAPI.getDocument;
|
|
exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
|
|
exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
|
|
exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
|
|
exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
|
|
exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
|
|
exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
|
|
exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
|
|
exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
|
|
exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
|
|
exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
|
|
exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
|
|
exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
|
|
exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
|
|
exports.UnexpectedResponseException =
|
|
pdfjsSharedUtil.UnexpectedResponseException;
|
|
exports.OPS = pdfjsSharedUtil.OPS;
|
|
exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
|
|
exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
|
|
exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
|
|
exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
|
|
exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
|
|
exports.shadow = pdfjsSharedUtil.shadow;
|
|
exports.Util = pdfjsSharedUtil.Util;
|
|
exports.ReadableStream = pdfjsSharedUtil.ReadableStream;
|
|
exports.URL = pdfjsSharedUtil.URL;
|
|
exports.RenderingCancelledException =
|
|
pdfjsDisplayDisplayUtils.RenderingCancelledException;
|
|
exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;
|
|
exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;
|
|
exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;
|
|
exports.loadScript = pdfjsDisplayDisplayUtils.loadScript;
|
|
exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;
|
|
exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
|
|
exports.apiCompatibilityParams =
|
|
pdfjsDisplayAPICompatibility.apiCompatibilityParams;
|