Support TrueType Font
This commit is contained in:
parent
c166db13fd
commit
4d261759d9
28
PDFFont.js
28
PDFFont.js
@ -4,6 +4,32 @@
|
|||||||
*/
|
*/
|
||||||
var Fonts = new Dict();
|
var Fonts = new Dict();
|
||||||
|
|
||||||
|
|
||||||
|
var Base64Encoder = {
|
||||||
|
encode: function(aData) {
|
||||||
|
var str = [];
|
||||||
|
var count = aData.length;
|
||||||
|
for (var i = 0; i < count; i++)
|
||||||
|
str.push(aData.getChar());
|
||||||
|
|
||||||
|
return window.btoa(str.join(""));
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
var TrueTypeFont = function(aFontName, aFontFile) {
|
||||||
|
if (Fonts.get(aFontName))
|
||||||
|
return;
|
||||||
|
|
||||||
|
//log("Loading a TrueType font: " + aFontName);
|
||||||
|
var fontData = Base64Encoder.encode(aFontFile);
|
||||||
|
Fonts.set(aFontName, fontData);
|
||||||
|
|
||||||
|
// Add the css rule
|
||||||
|
var url = "url(data:font/ttf;base64," + fontData + ");";
|
||||||
|
document.styleSheets[0].insertRule("@font-face { font-family: '" + aFontName + "'; src: " + url + " }", 0);
|
||||||
|
};
|
||||||
|
|
||||||
var Type1Parser = function(aAsciiStream, aBinaryStream) {
|
var Type1Parser = function(aAsciiStream, aBinaryStream) {
|
||||||
var lexer = new Lexer(aAsciiStream);
|
var lexer = new Lexer(aAsciiStream);
|
||||||
|
|
||||||
@ -608,6 +634,6 @@ var Type1Font = function(aFontName, aFontFile) {
|
|||||||
this.parser.parse();
|
this.parser.parse();
|
||||||
|
|
||||||
var end = Date.now();
|
var end = Date.now();
|
||||||
dump("Time to parse font is:" + (end - start));
|
//log("Time to parse font is:" + (end - start));
|
||||||
};
|
};
|
||||||
|
|
||||||
|
9
pdf.js
9
pdf.js
@ -2292,7 +2292,14 @@ var CanvasGraphics = (function() {
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case "TrueType":
|
case "TrueType":
|
||||||
TODO("implement TrueType support");
|
var fontDescriptor = font.get("FontDescriptor");
|
||||||
|
if (fontDescriptor.num) {
|
||||||
|
var fontDescriptor = this.xref.fetchIfRef(fontDescriptor);
|
||||||
|
var fontFile = this.xref.fetchIfRef(fontDescriptor.get("FontFile2"));
|
||||||
|
fontName = fontDescriptor.get("FontName").name;
|
||||||
|
fontName = fontName.replace("+", ""); // no + are allowed in the font name
|
||||||
|
font = new TrueTypeFont(fontName, fontFile);
|
||||||
|
}
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user