mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 10:08:06 +02:00
Refactors FontLoader to group fonts per document.
This commit is contained in:
parent
09772e1e15
commit
06c1904675
6 changed files with 117 additions and 98 deletions
|
@ -529,7 +529,7 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
|
||||
// Keep track of each font we translated so the caller can
|
||||
// load them asynchronously before calling display on a page.
|
||||
font.loadedName = 'g_font_' + (fontRefIsDict ?
|
||||
font.loadedName = 'g_' + this.pdfManager.docId + '_f' + (fontRefIsDict ?
|
||||
fontName.replace(/\W/g, '') : fontID);
|
||||
|
||||
font.translated = fontCapability.promise;
|
||||
|
|
|
@ -24,6 +24,10 @@ var BasePdfManager = (function BasePdfManagerClosure() {
|
|||
}
|
||||
|
||||
BasePdfManager.prototype = {
|
||||
get docId() {
|
||||
return this._docId;
|
||||
},
|
||||
|
||||
onLoadedStream: function BasePdfManager_onLoadedStream() {
|
||||
throw new NotImplementedException();
|
||||
},
|
||||
|
@ -85,7 +89,8 @@ var BasePdfManager = (function BasePdfManagerClosure() {
|
|||
})();
|
||||
|
||||
var LocalPdfManager = (function LocalPdfManagerClosure() {
|
||||
function LocalPdfManager(data, password) {
|
||||
function LocalPdfManager(docId, data, password) {
|
||||
this._docId = docId;
|
||||
var stream = new Stream(data);
|
||||
this.pdfDocument = new PDFDocument(this, stream, password);
|
||||
this._loadedStreamCapability = createPromiseCapability();
|
||||
|
@ -136,8 +141,8 @@ var LocalPdfManager = (function LocalPdfManagerClosure() {
|
|||
})();
|
||||
|
||||
var NetworkPdfManager = (function NetworkPdfManagerClosure() {
|
||||
function NetworkPdfManager(args, msgHandler) {
|
||||
|
||||
function NetworkPdfManager(docId, args, msgHandler) {
|
||||
this._docId = docId;
|
||||
this.msgHandler = msgHandler;
|
||||
|
||||
var params = {
|
||||
|
|
|
@ -92,9 +92,9 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||
var cancelXHRs = null;
|
||||
var WorkerTasks = [];
|
||||
|
||||
var mainHandlerName = data.docId;
|
||||
var docId = data.docId;
|
||||
var workerHandlerName = data.docId + '_worker';
|
||||
var handler = new MessageHandler(workerHandlerName, mainHandlerName, port);
|
||||
var handler = new MessageHandler(workerHandlerName, docId, port);
|
||||
|
||||
function ensureNotTerminated() {
|
||||
if (terminated) {
|
||||
|
@ -153,7 +153,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||
var disableRange = data.disableRange;
|
||||
if (source.data) {
|
||||
try {
|
||||
pdfManager = new LocalPdfManager(source.data, source.password);
|
||||
pdfManager = new LocalPdfManager(docId, source.data, source.password);
|
||||
pdfManagerCapability.resolve(pdfManager);
|
||||
} catch (ex) {
|
||||
pdfManagerCapability.reject(ex);
|
||||
|
@ -161,7 +161,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||
return pdfManagerCapability.promise;
|
||||
} else if (source.chunkedViewerLoading) {
|
||||
try {
|
||||
pdfManager = new NetworkPdfManager(source, handler);
|
||||
pdfManager = new NetworkPdfManager(docId, source, handler);
|
||||
pdfManagerCapability.resolve(pdfManager);
|
||||
} catch (ex) {
|
||||
pdfManagerCapability.reject(ex);
|
||||
|
@ -218,7 +218,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||
}
|
||||
|
||||
try {
|
||||
pdfManager = new NetworkPdfManager(source, handler);
|
||||
pdfManager = new NetworkPdfManager(docId, source, handler);
|
||||
pdfManagerCapability.resolve(pdfManager);
|
||||
} catch (ex) {
|
||||
pdfManagerCapability.reject(ex);
|
||||
|
@ -263,7 +263,7 @@ var WorkerMessageHandler = PDFJS.WorkerMessageHandler = {
|
|||
|
||||
// the data is array, instantiating directly from it
|
||||
try {
|
||||
pdfManager = new LocalPdfManager(pdfFile, source.password);
|
||||
pdfManager = new LocalPdfManager(docId, pdfFile, source.password);
|
||||
pdfManagerCapability.resolve(pdfManager);
|
||||
} catch (ex) {
|
||||
pdfManagerCapability.reject(ex);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue