Merge pull request #4809 from Snuffleupagus/bug-866395-redux
Fix loading of fonts with empty font files (bug 866395 and issue 3522)
This commit is contained in:
commit
5cd6483ebb
@ -133,6 +133,10 @@ var ChunkedStream = (function ChunkedStreamClosure() {
|
||||
return this.end - this.start;
|
||||
},
|
||||
|
||||
get isEmpty() {
|
||||
return this.length === 0;
|
||||
},
|
||||
|
||||
getByte: function ChunkedStream_getByte() {
|
||||
var pos = this.pos;
|
||||
if (pos >= this.end) {
|
||||
|
@ -2204,7 +2204,13 @@ var Font = (function FontClosure() {
|
||||
this.defaultVMetrics = properties.defaultVMetrics;
|
||||
}
|
||||
|
||||
if (!file) {
|
||||
if (!file || file.isEmpty) {
|
||||
if (file) {
|
||||
// Some bad PDF generators will include empty font files,
|
||||
// attempting to recover by assuming that no file exists.
|
||||
warn('Font file is empty in "' + name + '" (' + this.loadedName + ')');
|
||||
}
|
||||
|
||||
this.missingFile = true;
|
||||
// The file data is not specified. Trying to fix the font name
|
||||
// to be used with the canvas.font.
|
||||
|
@ -35,6 +35,9 @@ var Stream = (function StreamClosure() {
|
||||
get length() {
|
||||
return this.end - this.start;
|
||||
},
|
||||
get isEmpty() {
|
||||
return this.length === 0;
|
||||
},
|
||||
getByte: function Stream_getByte() {
|
||||
if (this.pos >= this.end) {
|
||||
return -1;
|
||||
@ -128,6 +131,12 @@ var DecodeStream = (function DecodeStreamClosure() {
|
||||
}
|
||||
|
||||
DecodeStream.prototype = {
|
||||
get isEmpty() {
|
||||
while (!this.eof && this.bufferLength === 0) {
|
||||
this.readBlock();
|
||||
}
|
||||
return this.bufferLength === 0;
|
||||
},
|
||||
ensureBuffer: function DecodeStream_ensureBuffer(requested) {
|
||||
var buffer = this.buffer;
|
||||
var current;
|
||||
@ -213,7 +222,7 @@ var DecodeStream = (function DecodeStreamClosure() {
|
||||
}
|
||||
return new Stream(this.buffer, start, length, dict);
|
||||
},
|
||||
skip: function Stream_skip(n) {
|
||||
skip: function DecodeStream_skip(n) {
|
||||
if (!n) {
|
||||
n = 1;
|
||||
}
|
||||
|
1
test/pdfs/.gitignore
vendored
1
test/pdfs/.gitignore
vendored
@ -55,6 +55,7 @@
|
||||
!gradientfill.pdf
|
||||
!bug903856.pdf
|
||||
!bug850854.pdf
|
||||
!bug866395.pdf
|
||||
!basicapi.pdf
|
||||
!mixedfonts.pdf
|
||||
!shading_extend.pdf
|
||||
|
BIN
test/pdfs/bug866395.pdf
Normal file
BIN
test/pdfs/bug866395.pdf
Normal file
Binary file not shown.
@ -682,6 +682,14 @@
|
||||
"type": "eq",
|
||||
"about": "Seac with differences array that messes up mapping."
|
||||
},
|
||||
{ "id": "bug866395",
|
||||
"file": "pdfs/bug866395.pdf",
|
||||
"md5": "f03bc77e84637241980b09a0a220f575",
|
||||
"link": false,
|
||||
"rounds": 1,
|
||||
"type": "eq",
|
||||
"about": "Font with an empty font file."
|
||||
},
|
||||
{ "id": "ocs",
|
||||
"file": "pdfs/ocs.pdf",
|
||||
"md5": "2ade57e954ae7632749cf328daeaa7a8",
|
||||
|
Loading…
x
Reference in New Issue
Block a user