Extract the actual sending of image data from the PartialEvaluator.buildPaintImageXObject
method
After PRs 10727 and 11912, the code responsible for sending the decoded image data to the main-thread has now become a fair bit more involved the previously. To reduce the amount of duplication here, the actual code responsible for sending the data is thus extracted into a new helper method instead.
This commit is contained in:
parent
aff0d56326
commit
df7d8c74ca
@ -439,6 +439,30 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
|
_sendImgData(objId, imgData, cacheGlobally = false) {
|
||||||
|
const transfers = imgData ? [imgData.data.buffer] : null;
|
||||||
|
|
||||||
|
if (this.parsingType3Font) {
|
||||||
|
return this.handler.sendWithPromise(
|
||||||
|
"commonobj",
|
||||||
|
[objId, "FontType3Res", imgData],
|
||||||
|
transfers
|
||||||
|
);
|
||||||
|
}
|
||||||
|
if (cacheGlobally) {
|
||||||
|
return this.handler.send(
|
||||||
|
"commonobj",
|
||||||
|
[objId, "Image", imgData],
|
||||||
|
transfers
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return this.handler.send(
|
||||||
|
"obj",
|
||||||
|
[objId, this.pageIndex, "Image", imgData],
|
||||||
|
transfers
|
||||||
|
);
|
||||||
|
},
|
||||||
|
|
||||||
async buildPaintImageXObject({
|
async buildPaintImageXObject({
|
||||||
resources,
|
resources,
|
||||||
image,
|
image,
|
||||||
@ -552,42 +576,12 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||||||
.then(imageObj => {
|
.then(imageObj => {
|
||||||
imgData = imageObj.createImageData(/* forceRGBA = */ false);
|
imgData = imageObj.createImageData(/* forceRGBA = */ false);
|
||||||
|
|
||||||
if (this.parsingType3Font) {
|
return this._sendImgData(objId, imgData, cacheGlobally);
|
||||||
return this.handler.sendWithPromise(
|
|
||||||
"commonobj",
|
|
||||||
[objId, "FontType3Res", imgData],
|
|
||||||
[imgData.data.buffer]
|
|
||||||
);
|
|
||||||
} else if (cacheGlobally) {
|
|
||||||
this.handler.send(
|
|
||||||
"commonobj",
|
|
||||||
[objId, "Image", imgData],
|
|
||||||
[imgData.data.buffer]
|
|
||||||
);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
this.handler.send(
|
|
||||||
"obj",
|
|
||||||
[objId, this.pageIndex, "Image", imgData],
|
|
||||||
[imgData.data.buffer]
|
|
||||||
);
|
|
||||||
return undefined;
|
|
||||||
})
|
})
|
||||||
.catch(reason => {
|
.catch(reason => {
|
||||||
warn("Unable to decode image: " + reason);
|
warn("Unable to decode image: " + reason);
|
||||||
|
|
||||||
if (this.parsingType3Font) {
|
return this._sendImgData(objId, /* imgData = */ null, cacheGlobally);
|
||||||
return this.handler.sendWithPromise("commonobj", [
|
|
||||||
objId,
|
|
||||||
"FontType3Res",
|
|
||||||
null,
|
|
||||||
]);
|
|
||||||
} else if (cacheGlobally) {
|
|
||||||
this.handler.send("commonobj", [objId, "Image", null]);
|
|
||||||
return undefined;
|
|
||||||
}
|
|
||||||
this.handler.send("obj", [objId, this.pageIndex, "Image", null]);
|
|
||||||
return undefined;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (this.parsingType3Font) {
|
if (this.parsingType3Font) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user