|
|
|
@ -19,46 +19,46 @@ var kMaxWaitForFontFace = 1000;
@@ -19,46 +19,46 @@ var kMaxWaitForFontFace = 1000;
|
|
|
|
|
* fonts and their acronyms. |
|
|
|
|
*/ |
|
|
|
|
var stdFontMap = { |
|
|
|
|
"Arial": "Helvetica", |
|
|
|
|
"Arial_Bold": "Helvetica-Bold", |
|
|
|
|
"Arial_BoldItalic": "Helvetica-BoldOblique", |
|
|
|
|
"Arial_Italic": "Helvetica-Oblique", |
|
|
|
|
"Arial_BoldItalicMT": "Helvetica-BoldOblique", |
|
|
|
|
"Arial_BoldMT": "Helvetica-Bold", |
|
|
|
|
"Arial_ItalicMT": "Helvetica-Oblique", |
|
|
|
|
"ArialMT": "Helvetica", |
|
|
|
|
"Courier_Bold": "Courier-Bold", |
|
|
|
|
"Courier_BoldItalic": "Courier-BoldOblique", |
|
|
|
|
"Courier_Italic": "Courier-Oblique", |
|
|
|
|
"CourierNew": "Courier", |
|
|
|
|
"CourierNew_Bold": "Courier-Bold", |
|
|
|
|
"CourierNew_BoldItalic": "Courier-BoldOblique", |
|
|
|
|
"CourierNew_Italic": "Courier-Oblique", |
|
|
|
|
"CourierNewPS_BoldItalicMT": "Courier-BoldOblique", |
|
|
|
|
"CourierNewPS_BoldMT": "Courier-Bold", |
|
|
|
|
"CourierNewPS_ItalicMT": "Courier-Oblique", |
|
|
|
|
"CourierNewPSMT": "Courier", |
|
|
|
|
"Helvetica_Bold": "Helvetica-Bold", |
|
|
|
|
"Helvetica_BoldItalic": "Helvetica-BoldOblique", |
|
|
|
|
"Helvetica_Italic": "Helvetica-Oblique", |
|
|
|
|
"Symbol_Bold": "Symbol", |
|
|
|
|
"Symbol_BoldItalic": "Symbol", |
|
|
|
|
"Symbol_Italic": "Symbol", |
|
|
|
|
"TimesNewRoman": "Times-Roman", |
|
|
|
|
"TimesNewRoman_Bold": "Times-Bold", |
|
|
|
|
"TimesNewRoman_BoldItalic": "Times-BoldItalic", |
|
|
|
|
"TimesNewRoman_Italic": "Times-Italic", |
|
|
|
|
"TimesNewRomanPS": "Times-Roman", |
|
|
|
|
"TimesNewRomanPS_Bold": "Times-Bold", |
|
|
|
|
"TimesNewRomanPS_BoldItalic": "Times-BoldItalic", |
|
|
|
|
"TimesNewRomanPS_BoldItalicMT": "Times-BoldItalic", |
|
|
|
|
"TimesNewRomanPS_BoldMT": "Times-Bold", |
|
|
|
|
"TimesNewRomanPS_Italic": "Times-Italic", |
|
|
|
|
"TimesNewRomanPS_ItalicMT": "Times-Italic", |
|
|
|
|
"TimesNewRomanPSMT": "Times-Roman", |
|
|
|
|
"TimesNewRomanPSMT_Bold": "Times-Bold", |
|
|
|
|
"TimesNewRomanPSMT_BoldItalic": "Times-BoldItalic", |
|
|
|
|
"TimesNewRomanPSMT_Italic": "Times-Italic" |
|
|
|
|
'Arial': 'Helvetica', |
|
|
|
|
'Arial_Bold': 'Helvetica-Bold', |
|
|
|
|
'Arial_BoldItalic': 'Helvetica-BoldOblique', |
|
|
|
|
'Arial_Italic': 'Helvetica-Oblique', |
|
|
|
|
'Arial_BoldItalicMT': 'Helvetica-BoldOblique', |
|
|
|
|
'Arial_BoldMT': 'Helvetica-Bold', |
|
|
|
|
'Arial_ItalicMT': 'Helvetica-Oblique', |
|
|
|
|
'ArialMT': 'Helvetica', |
|
|
|
|
'Courier_Bold': 'Courier-Bold', |
|
|
|
|
'Courier_BoldItalic': 'Courier-BoldOblique', |
|
|
|
|
'Courier_Italic': 'Courier-Oblique', |
|
|
|
|
'CourierNew': 'Courier', |
|
|
|
|
'CourierNew_Bold': 'Courier-Bold', |
|
|
|
|
'CourierNew_BoldItalic': 'Courier-BoldOblique', |
|
|
|
|
'CourierNew_Italic': 'Courier-Oblique', |
|
|
|
|
'CourierNewPS_BoldItalicMT': 'Courier-BoldOblique', |
|
|
|
|
'CourierNewPS_BoldMT': 'Courier-Bold', |
|
|
|
|
'CourierNewPS_ItalicMT': 'Courier-Oblique', |
|
|
|
|
'CourierNewPSMT': 'Courier', |
|
|
|
|
'Helvetica_Bold': 'Helvetica-Bold', |
|
|
|
|
'Helvetica_BoldItalic': 'Helvetica-BoldOblique', |
|
|
|
|
'Helvetica_Italic': 'Helvetica-Oblique', |
|
|
|
|
'Symbol_Bold': 'Symbol', |
|
|
|
|
'Symbol_BoldItalic': 'Symbol', |
|
|
|
|
'Symbol_Italic': 'Symbol', |
|
|
|
|
'TimesNewRoman': 'Times-Roman', |
|
|
|
|
'TimesNewRoman_Bold': 'Times-Bold', |
|
|
|
|
'TimesNewRoman_BoldItalic': 'Times-BoldItalic', |
|
|
|
|
'TimesNewRoman_Italic': 'Times-Italic', |
|
|
|
|
'TimesNewRomanPS': 'Times-Roman', |
|
|
|
|
'TimesNewRomanPS_Bold': 'Times-Bold', |
|
|
|
|
'TimesNewRomanPS_BoldItalic': 'Times-BoldItalic', |
|
|
|
|
'TimesNewRomanPS_BoldItalicMT': 'Times-BoldItalic', |
|
|
|
|
'TimesNewRomanPS_BoldMT': 'Times-Bold', |
|
|
|
|
'TimesNewRomanPS_Italic': 'Times-Italic', |
|
|
|
|
'TimesNewRomanPS_ItalicMT': 'Times-Italic', |
|
|
|
|
'TimesNewRomanPSMT': 'Times-Roman', |
|
|
|
|
'TimesNewRomanPSMT_Bold': 'Times-Bold', |
|
|
|
|
'TimesNewRomanPSMT_BoldItalic': 'Times-BoldItalic', |
|
|
|
|
'TimesNewRomanPSMT_Italic': 'Times-Italic' |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
var FontMeasure = (function FontMeasure() { |
|
|
|
@ -76,14 +76,14 @@ var FontMeasure = (function FontMeasure() {
@@ -76,14 +76,14 @@ var FontMeasure = (function FontMeasure() {
|
|
|
|
|
if (!(measureCache = sizes[size])) |
|
|
|
|
measureCache = sizes[size] = Object.create(null); |
|
|
|
|
} else { |
|
|
|
|
measureCache = null |
|
|
|
|
measureCache = null; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var name = font.loadedName; |
|
|
|
|
var bold = font.bold ? "bold" : "normal"; |
|
|
|
|
var italic = font.italic ? "italic" : "normal"; |
|
|
|
|
var bold = font.bold ? 'bold' : 'normal'; |
|
|
|
|
var italic = font.italic ? 'italic' : 'normal'; |
|
|
|
|
size *= kScalePrecision; |
|
|
|
|
var rule = bold + " " + italic + " " + size + 'px "' + name + '"'; |
|
|
|
|
var rule = bold + ' ' + italic + ' ' + size + 'px "' + name + '"'; |
|
|
|
|
ctx.font = rule; |
|
|
|
|
}, |
|
|
|
|
measureText: function fonts_measureText(text) { |
|
|
|
@ -402,9 +402,9 @@ var Font = (function Font() {
@@ -402,9 +402,9 @@ var Font = (function Font() {
|
|
|
|
|
|
|
|
|
|
if (!file) { |
|
|
|
|
var fontName = stdFontMap[name]; |
|
|
|
|
this.bold = (fontName.indexOf("Bold") != -1); |
|
|
|
|
this.italic = (fontName.indexOf("Oblique") != -1); |
|
|
|
|
this.loadedName = fontName.split("-")[0]; |
|
|
|
|
this.bold = (fontName.indexOf('Bold') != -1); |
|
|
|
|
this.italic = (fontName.indexOf('Oblique') != -1); |
|
|
|
|
this.loadedName = fontName.split('-')[0]; |
|
|
|
|
this.loading = false; |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
@ -838,7 +838,7 @@ var Font = (function Font() {
@@ -838,7 +838,7 @@ var Font = (function Font() {
|
|
|
|
|
encodingID: int16(font.getBytes(2)), |
|
|
|
|
offset: int32(font.getBytes(4)) |
|
|
|
|
}); |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
var encoding = properties.encoding; |
|
|
|
|
var charset = properties.charset; |
|
|
|
@ -1005,11 +1005,11 @@ var Font = (function Font() {
@@ -1005,11 +1005,11 @@ var Font = (function Font() {
|
|
|
|
|
((hmtx.length - numOfHMetrics * 4) >> 1); |
|
|
|
|
if (numMissing > 0) { |
|
|
|
|
font.pos = (font.start ? font.start : 0) + hmtx.offset; |
|
|
|
|
var metrics = ""; |
|
|
|
|
var metrics = ''; |
|
|
|
|
for (var i = 0; i < hmtx.length; i++) |
|
|
|
|
metrics += String.fromCharCode(font.getByte()); |
|
|
|
|
for (var i = 0; i < numMissing; i++) |
|
|
|
|
metrics += "\x00\x00"; |
|
|
|
|
metrics += '\x00\x00'; |
|
|
|
|
hmtx.data = stringToArray(metrics); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1272,7 +1272,7 @@ var Font = (function Font() {
@@ -1272,7 +1272,7 @@ var Font = (function Font() {
|
|
|
|
|
// XXX assuming CIDFonts are two-byte - later need to extract the correct byte encoding
|
|
|
|
|
// according to the PDF spec
|
|
|
|
|
str = ''; |
|
|
|
|
var multiByteStr = ""; |
|
|
|
|
var multiByteStr = ''; |
|
|
|
|
var length = chars.length; |
|
|
|
|
for (var i = 0; i < length; i++) { |
|
|
|
|
var byte1 = chars.charCodeAt(i++) & 0xFF; |
|
|
|
@ -2089,7 +2089,7 @@ var Type2CFF = (function() {
@@ -2089,7 +2089,7 @@ var Type2CFF = (function() {
|
|
|
|
|
this.properties = properties; |
|
|
|
|
|
|
|
|
|
// Other classes expect this.data to be a Javascript array
|
|
|
|
|
var data = [] |
|
|
|
|
var data = []; |
|
|
|
|
for (var i = 0, ii = bytes.length; i < ii; ++i) |
|
|
|
|
data.push(bytes[i]); |
|
|
|
|
this.data = data; |
|
|
|
@ -2283,7 +2283,7 @@ var Type2CFF = (function() {
@@ -2283,7 +2283,7 @@ var Type2CFF = (function() {
|
|
|
|
|
}, |
|
|
|
|
getStrings: function cff_getstrings(stringIndex) { |
|
|
|
|
function bytesToString(bytesArr) { |
|
|
|
|
var s = ""; |
|
|
|
|
var s = ''; |
|
|
|
|
for (var i = 0, ii = bytesArr.length; i < ii; ++i) |
|
|
|
|
s += String.fromCharCode(bytesArr[i]); |
|
|
|
|
return s; |
|
|
|
@ -2306,7 +2306,7 @@ var Type2CFF = (function() {
@@ -2306,7 +2306,7 @@ var Type2CFF = (function() {
|
|
|
|
|
++offset; |
|
|
|
|
|
|
|
|
|
if (offset != 0) { |
|
|
|
|
warning("cff data is shifted"); |
|
|
|
|
warning('cff data is shifted'); |
|
|
|
|
bytes = bytes.subarray(offset); |
|
|
|
|
this.bytes = bytes; |
|
|
|
|
} |
|
|
|
@ -2314,7 +2314,7 @@ var Type2CFF = (function() {
@@ -2314,7 +2314,7 @@ var Type2CFF = (function() {
|
|
|
|
|
return { |
|
|
|
|
endPos: bytes[2], |
|
|
|
|
offsetSize: bytes[3] |
|
|
|
|
} |
|
|
|
|
}; |
|
|
|
|
}, |
|
|
|
|
parseDict: function cff_parseDict(dict) { |
|
|
|
|
var pos = 0; |
|
|
|
@ -2345,7 +2345,7 @@ var Type2CFF = (function() {
@@ -2345,7 +2345,7 @@ var Type2CFF = (function() {
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
function parseFloatOperand() { |
|
|
|
|
var str = ""; |
|
|
|
|
var str = ''; |
|
|
|
|
var eof = 15; |
|
|
|
|
var lookup = ['0', '1', '2', '3', '4', '5', '6', '7', '8', |
|
|
|
|
'9', '.', 'E', 'E-', null, '-']; |
|
|
|
@ -2421,8 +2421,8 @@ var Type2CFF = (function() {
@@ -2421,8 +2421,8 @@ var Type2CFF = (function() {
|
|
|
|
|
}, |
|
|
|
|
length: count, |
|
|
|
|
endPos: end |
|
|
|
|
}; |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
return constructor; |
|
|
|
|