mirror of
https://github.com/mozilla/pdf.js.git
synced 2025-04-26 10:08:06 +02:00
Fix loading of fonts that are not referenced by an object identifier
This commit is contained in:
parent
356ebf25cc
commit
b1c5ef9ccc
4 changed files with 22 additions and 3 deletions
|
@ -475,16 +475,24 @@ var PartialEvaluator = (function PartialEvaluatorClosure() {
|
|||
return this.fontCache.get(fontRef);
|
||||
}
|
||||
|
||||
|
||||
font = xref.fetchIfRef(fontRef);
|
||||
if (!isDict(font)) {
|
||||
return errorFont();
|
||||
}
|
||||
this.fontCache.put(fontRef, font);
|
||||
// Workaround for bad PDF generators that doesn't reference fonts
|
||||
// properly, i.e. by not using an object identifier.
|
||||
// Check if the fontRef is a Dict (as opposed to a standard object),
|
||||
// in which case we don't cache the font and instead reference it by
|
||||
// fontName in font.loadedName below.
|
||||
var fontRefIsDict = isDict(fontRef);
|
||||
if (!fontRefIsDict) {
|
||||
this.fontCache.put(fontRef, font);
|
||||
}
|
||||
|
||||
// keep track of each font we translated so the caller can
|
||||
// load them asynchronously before calling display on a page
|
||||
font.loadedName = 'g_font_' + fontRef.num + '_' + fontRef.gen;
|
||||
font.loadedName = 'g_font_' + (fontRefIsDict ?
|
||||
fontName.replace(/\W/g, '') : (fontRef.num + '_' + fontRef.gen));
|
||||
|
||||
if (!font.translated) {
|
||||
var translated;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue