Merge pull request #322 from notmasteryet/basefont
BaseFont and misc fonts fixes
This commit is contained in:
commit
52ac2122b4
16
fonts.js
16
fonts.js
@ -7,7 +7,7 @@ var isWorker = (typeof window == 'undefined');
|
|||||||
/**
|
/**
|
||||||
* Maximum file size of the font.
|
* Maximum file size of the font.
|
||||||
*/
|
*/
|
||||||
var kMaxFontFileSize = 200000;
|
var kMaxFontFileSize = 300000;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Maximum time to wait for a font to be loaded by font-face rules.
|
* Maximum time to wait for a font to be loaded by font-face rules.
|
||||||
@ -83,7 +83,7 @@ var FontMeasure = (function FontMeasure() {
|
|||||||
var bold = font.bold ? 'bold' : 'normal';
|
var bold = font.bold ? 'bold' : 'normal';
|
||||||
var italic = font.italic ? 'italic' : 'normal';
|
var italic = font.italic ? 'italic' : 'normal';
|
||||||
size *= kScalePrecision;
|
size *= kScalePrecision;
|
||||||
var rule = bold + ' ' + italic + ' ' + size + 'px "' + name + '"';
|
var rule = italic + ' ' + bold + ' ' + size + 'px "' + name + '"';
|
||||||
ctx.font = rule;
|
ctx.font = rule;
|
||||||
},
|
},
|
||||||
measureText: function fonts_measureText(text) {
|
measureText: function fonts_measureText(text) {
|
||||||
@ -395,17 +395,23 @@ var Font = (function Font() {
|
|||||||
// If the font is to be ignored, register it like an already loaded font
|
// If the font is to be ignored, register it like an already loaded font
|
||||||
// to avoid the cost of waiting for it be be loaded by the platform.
|
// to avoid the cost of waiting for it be be loaded by the platform.
|
||||||
if (properties.ignore) {
|
if (properties.ignore) {
|
||||||
this.loadedName = 'Arial';
|
this.loadedName = 'sans-serif';
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!file) {
|
if (!file) {
|
||||||
var fontName = stdFontMap[name];
|
// The file data is not specified. Trying to mingle the font name
|
||||||
|
// to be used with the canvas.font.
|
||||||
|
var fontName = stdFontMap[name] || name.replace('_', '-');
|
||||||
this.bold = (fontName.indexOf('Bold') != -1);
|
this.bold = (fontName.indexOf('Bold') != -1);
|
||||||
this.italic = (fontName.indexOf('Oblique') != -1);
|
this.italic = (fontName.indexOf('Oblique') != -1) ||
|
||||||
|
(fontName.indexOf('Italic') != -1);
|
||||||
this.loadedName = fontName.split('-')[0];
|
this.loadedName = fontName.split('-')[0];
|
||||||
this.loading = false;
|
this.loading = false;
|
||||||
|
this.charsToUnicode = function(s) {
|
||||||
|
return s;
|
||||||
|
};
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
15
pdf.js
15
pdf.js
@ -3758,8 +3758,17 @@ var PartialEvaluator = (function() {
|
|||||||
fd = fontDict.get('FontDescriptor');
|
fd = fontDict.get('FontDescriptor');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!fd)
|
if (!fd) {
|
||||||
return null;
|
var baseFontName = fontDict.get('BaseFont');
|
||||||
|
if (!IsName(baseFontName))
|
||||||
|
return null;
|
||||||
|
// Using base font name as a font name.
|
||||||
|
return {
|
||||||
|
name: baseFontName.name.replace(/[\+,\-]/g, '_'),
|
||||||
|
fontDict: fontDict,
|
||||||
|
properties: {}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
var descriptor = xref.fetch(fd);
|
var descriptor = xref.fetch(fd);
|
||||||
|
|
||||||
@ -4298,7 +4307,7 @@ var CanvasGraphics = (function() {
|
|||||||
|
|
||||||
var bold = fontObj.bold ? 'bold' : 'normal';
|
var bold = fontObj.bold ? 'bold' : 'normal';
|
||||||
var italic = fontObj.italic ? 'italic' : 'normal';
|
var italic = fontObj.italic ? 'italic' : 'normal';
|
||||||
var rule = bold + ' ' + italic + ' ' + size + 'px "' + name + '"';
|
var rule = italic + ' ' + bold + ' ' + size + 'px "' + name + '"';
|
||||||
this.ctx.font = rule;
|
this.ctx.font = rule;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
1
test/pdfs/ecma262.pdf.link
Normal file
1
test/pdfs/ecma262.pdf.link
Normal file
@ -0,0 +1 @@
|
|||||||
|
http://www.ecma-international.org/publications/files/ECMA-ST/Ecma-262.pdf
|
@ -80,5 +80,11 @@
|
|||||||
"file": "pdfs/rotation.pdf",
|
"file": "pdfs/rotation.pdf",
|
||||||
"rounds": 1,
|
"rounds": 1,
|
||||||
"type": "load"
|
"type": "load"
|
||||||
|
},
|
||||||
|
{ "id": "ecma262-pdf",
|
||||||
|
"file": "pdfs/ecma262.pdf",
|
||||||
|
"link": true,
|
||||||
|
"rounds": 1,
|
||||||
|
"type": "load"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
Loading…
Reference in New Issue
Block a user