From e5ff7959a4297eb707afc216ae41e77e196ab4c0 Mon Sep 17 00:00:00 2001 From: Jason Crain Date: Sun, 25 Mar 2018 22:18:38 -0500 Subject: [PATCH] CairoFontEngine: Try external font if embedded font fails Some documents fail to render because the embedded font doesn't load. If loading the embedded font fails, try with an external font. https://bugs.freedesktop.org/show_bug.cgi?id=92048 --- poppler/CairoFontEngine.cc | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/poppler/CairoFontEngine.cc b/poppler/CairoFontEngine.cc index 91deac46..6b326ddd 100644 --- a/poppler/CairoFontEngine.cc +++ b/poppler/CairoFontEngine.cc @@ -856,8 +856,11 @@ CairoFontEngine::getFont(GfxFont *gfxFont, PDFDoc *doc, GBool printing, XRef *xr fontType = gfxFont->getType(); if (fontType == fontType3) font = CairoType3Font::create (gfxFont, doc, this, printing, xref); - else + else { font = CairoFreeTypeFont::create (gfxFont, xref, lib, useCIDs); + if (!font && gfxFont->invalidateEmbeddedFont()) + font = CairoFreeTypeFont::create (gfxFont, xref, lib, useCIDs); + } //XXX: if font is null should we still insert it into the cache? if (fontCache[cairoFontCacheSize - 1]) { -- 2.16.2