diff --git a/Userland/Libraries/LibPDF/Fonts/PDFFont.cpp b/Userland/Libraries/LibPDF/Fonts/PDFFont.cpp index 3be8446a7b..0ec44dbdcb 100644 --- a/Userland/Libraries/LibPDF/Fonts/PDFFont.cpp +++ b/Userland/Libraries/LibPDF/Fonts/PDFFont.cpp @@ -33,9 +33,9 @@ static bool is_standard_latin_font(DeprecatedFlyString const& font) PDFErrorOr PDFFont::CommonData::load_from_dict(Document* document, NonnullRefPtr dict, float font_size) { - auto base_font = TRY(dict->get_name(document, CommonNames::BaseFont))->name(); - if ((is_standard_font = is_standard_latin_font(base_font))) { - auto replacement = replacement_for_standard_latin_font(base_font.to_lowercase()); + base_font_name = TRY(dict->get_name(document, CommonNames::BaseFont))->name(); + if ((is_standard_font = is_standard_latin_font(base_font_name))) { + auto replacement = replacement_for_standard_latin_font(base_font_name.to_lowercase()); font = Gfx::FontDatabase::the().get(replacement.get<0>(), replacement.get<1>(), font_size); VERIFY(font); } diff --git a/Userland/Libraries/LibPDF/Fonts/PDFFont.h b/Userland/Libraries/LibPDF/Fonts/PDFFont.h index 555701230d..49f0933f77 100644 --- a/Userland/Libraries/LibPDF/Fonts/PDFFont.h +++ b/Userland/Libraries/LibPDF/Fonts/PDFFont.h @@ -24,6 +24,7 @@ public: // This is used both by Type 1 and TrueType fonts. struct CommonData { + DeprecatedFlyString base_font_name; RefPtr font; RefPtr to_unicode; RefPtr encoding; @@ -45,6 +46,7 @@ public: virtual bool is_standard_font() const { return m_is_standard_font; } virtual Type type() const = 0; + virtual DeprecatedFlyString base_font_name() const = 0; protected: static Tuple replacement_for_standard_latin_font(StringView); diff --git a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h index b03a614a44..c38b630e4b 100644 --- a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h +++ b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h @@ -27,6 +27,7 @@ public: void draw_glyph(Gfx::Painter&, Gfx::FloatPoint, float, u32, Color) override; Type type() const override { return PDFFont::Type::TrueType; } + DeprecatedFlyString base_font_name() const override { return m_data.base_font_name; } private: PDFFont::CommonData m_data; diff --git a/Userland/Libraries/LibPDF/Fonts/Type0Font.h b/Userland/Libraries/LibPDF/Fonts/Type0Font.h index f74751b956..0d286de18b 100644 --- a/Userland/Libraries/LibPDF/Fonts/Type0Font.h +++ b/Userland/Libraries/LibPDF/Fonts/Type0Font.h @@ -30,6 +30,7 @@ public: void draw_glyph(Gfx::Painter&, Gfx::FloatPoint, float, u32, Color) override {}; Type type() const override { return PDFFont::Type::Type0; } + DeprecatedFlyString base_font_name() const override { return ""; } private: CIDSystemInfo m_system_info; diff --git a/Userland/Libraries/LibPDF/Fonts/Type1Font.h b/Userland/Libraries/LibPDF/Fonts/Type1Font.h index 104d4ad954..a8cd4057a1 100644 --- a/Userland/Libraries/LibPDF/Fonts/Type1Font.h +++ b/Userland/Libraries/LibPDF/Fonts/Type1Font.h @@ -31,6 +31,7 @@ public: void draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u32 char_code, Color color) override; Type type() const override { return PDFFont::Type::Type1; } + DeprecatedFlyString base_font_name() const override { return m_data.base_font_name; }; private: Data m_data;