Ensure things work for default fonts like Arial

This commit is contained in:
Julian Viereck 2011-09-08 18:34:54 -07:00
parent a2bf701bfe
commit c370b8a428
3 changed files with 20 additions and 17 deletions

View File

@ -173,7 +173,7 @@ var FontLoader = {
document.documentElement.removeEventListener(
'pdfjsFontLoad', checkFontsLoaded, false);
callback();
callback(objs);
return true;
}
@ -450,6 +450,8 @@ var Font = (function Font() {
var constructor = function font_constructor(name, file, properties) {
this.name = name;
this.encoding = properties.encoding;
this.glyphs = properties.glyphs;
this.loadedName = properties.loadedName;
this.sizes = [];
var names = name.split('+');
@ -477,7 +479,6 @@ var Font = (function Font() {
// name ArialBlack for example will be replaced by Helvetica.
this.black = (name.search(/Black/g) != -1);
this.loadedName = fontName.split('-')[0];
this.loading = false;
return;
}
@ -514,14 +515,13 @@ var Font = (function Font() {
this.type = properties.type;
this.textMatrix = properties.textMatrix;
this.composite = properties.composite;
this.loadedName = properties.loadedName;
// TODO: Remove this once we can be sure nothing got broken to du changes
// in this commit.
if (!this.loadedName) {
throw "There has to be a `loadedName`";
}
this.loading = true;
};

4
pdf.js
View File

@ -3427,9 +3427,9 @@ var Page = (function() {
},
ensureFonts: function(fonts, callback) {
var fontObjs = FontLoader.bind(
FontLoader.bind(
fonts,
function() {
function(fontObjs) {
// Rebuild the FontsMap. This is emulating the behavior of the main
// thread.
if (fontObjs) {

View File

@ -134,19 +134,22 @@ var WorkerPDFDoc = (function() {
for (var i = 0; i < fonts.length; i++) {
var font = fonts[i];
var fontFileDict = new Dict();
fontFileDict.map = font.file.dict.map;
// Some fonts don't have a file, e.g. the build in ones like Arial.
if (font.file) {
var fontFileDict = new Dict();
fontFileDict.map = font.file.dict.map;
var fontFile = new Stream(font.file.bytes, font.file.start,
font.file.end - font.file.start, fontFileDict);
var fontFile = new Stream(font.file.bytes, font.file.start,
font.file.end - font.file.start, fontFileDict);
// Check if this is a FlateStream. Otherwise just use the created
// Stream one. This makes complex_ttf_font.pdf work.
var cmf = font.file.bytes[0];
if ((cmf & 0x0f) == 0x08) {
font.file = new FlateStream(fontFile);
} else {
font.file = fontFile;
// Check if this is a FlateStream. Otherwise just use the created
// Stream one. This makes complex_ttf_font.pdf work.
var cmf = font.file.bytes[0];
if ((cmf & 0x0f) == 0x08) {
font.file = new FlateStream(fontFile);
} else {
font.file = fontFile;
}
}
}