diff --git a/Userland/Libraries/LibPDF/Fonts/SimpleFont.cpp b/Userland/Libraries/LibPDF/Fonts/SimpleFont.cpp index b9106c06e4..4e05ec78ad 100644 --- a/Userland/Libraries/LibPDF/Fonts/SimpleFont.cpp +++ b/Userland/Libraries/LibPDF/Fonts/SimpleFont.cpp @@ -58,7 +58,7 @@ PDFErrorOr SimpleFont::draw_string(Gfx::Painter& painter, Gfx:: else glyph_width = m_missing_width; - draw_glyph(painter, glyph_position, glyph_width, char_code, paint_color); + TRY(draw_glyph(painter, glyph_position, glyph_width, char_code, paint_color)); auto tx = glyph_width; tx += character_spacing; diff --git a/Userland/Libraries/LibPDF/Fonts/SimpleFont.h b/Userland/Libraries/LibPDF/Fonts/SimpleFont.h index 12c60cac53..783fb1e1a2 100644 --- a/Userland/Libraries/LibPDF/Fonts/SimpleFont.h +++ b/Userland/Libraries/LibPDF/Fonts/SimpleFont.h @@ -18,7 +18,7 @@ public: protected: PDFErrorOr initialize(Document* document, NonnullRefPtr const& dict, float font_size) override; virtual Optional get_glyph_width(u8 char_code) const = 0; - virtual void draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) = 0; + virtual PDFErrorOr draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) = 0; RefPtr& encoding() { return m_encoding; } RefPtr const& encoding() const { return m_encoding; } diff --git a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.cpp b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.cpp index 08b30a895c..d4a7c5fbd1 100644 --- a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.cpp +++ b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.cpp @@ -45,11 +45,12 @@ void TrueTypeFont::set_font_size(float font_size) m_font = m_font->with_size((font_size * POINTS_PER_INCH) / DEFAULT_DPI); } -void TrueTypeFont::draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float, u8 char_code, Color color) +PDFErrorOr TrueTypeFont::draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float, u8 char_code, Color color) { // Account for the reversed font baseline auto position = point.translated(0, -m_font->baseline()); painter.draw_glyph(position, char_code, *m_font, color); + return {}; } } diff --git a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h index 1b1330aa5d..aecea8e4de 100644 --- a/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h +++ b/Userland/Libraries/LibPDF/Fonts/TrueTypeFont.h @@ -16,7 +16,7 @@ class TrueTypeFont : public SimpleFont { public: Optional get_glyph_width(u8 char_code) const override; void set_font_size(float font_size) override; - void draw_glyph(Gfx::Painter&, Gfx::FloatPoint, float, u8, Color) override; + PDFErrorOr draw_glyph(Gfx::Painter&, Gfx::FloatPoint, float, u8, Color) override; protected: PDFErrorOr initialize(Document*, NonnullRefPtr const&, float font_size) override; diff --git a/Userland/Libraries/LibPDF/Fonts/Type1Font.cpp b/Userland/Libraries/LibPDF/Fonts/Type1Font.cpp index 4fc379284c..78ae70a9da 100644 --- a/Userland/Libraries/LibPDF/Fonts/Type1Font.cpp +++ b/Userland/Libraries/LibPDF/Fonts/Type1Font.cpp @@ -62,13 +62,13 @@ void Type1Font::set_font_size(float font_size) m_font = m_font->with_size((font_size * POINTS_PER_INCH) / DEFAULT_DPI); } -void Type1Font::draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) +PDFErrorOr Type1Font::draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) { if (!m_font_program) { // Account for the reversed font baseline auto position = point.translated(0, -m_font->baseline()); painter.draw_glyph(position, char_code, *m_font, color); - return; + return {}; } auto effective_encoding = encoding(); @@ -95,5 +95,6 @@ void Type1Font::draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float w painter.blit_filtered(glyph_position.blit_position, *bitmap, bitmap->rect(), [color](Color pixel) -> Color { return pixel.multiply(color); }); + return {}; } } diff --git a/Userland/Libraries/LibPDF/Fonts/Type1Font.h b/Userland/Libraries/LibPDF/Fonts/Type1Font.h index 946e152d49..20ca5ec078 100644 --- a/Userland/Libraries/LibPDF/Fonts/Type1Font.h +++ b/Userland/Libraries/LibPDF/Fonts/Type1Font.h @@ -24,7 +24,7 @@ class Type1Font : public SimpleFont { public: Optional get_glyph_width(u8 char_code) const override; void set_font_size(float font_size) override; - void draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) override; + PDFErrorOr draw_glyph(Gfx::Painter& painter, Gfx::FloatPoint point, float width, u8 char_code, Color color) override; protected: PDFErrorOr initialize(Document*, NonnullRefPtr const&, float font_size) override;