diff --git a/Userland/Libraries/LibPDF/Encoding.cpp b/Userland/Libraries/LibPDF/Encoding.cpp index f18152dafe..086e77092f 100644 --- a/Userland/Libraries/LibPDF/Encoding.cpp +++ b/Userland/Libraries/LibPDF/Encoding.cpp @@ -171,6 +171,14 @@ CharDescriptor const& Encoding::get_char_code_descriptor(u16 char_code) const return const_cast(this)->m_descriptors.ensure(char_code); } +u16 Encoding::get_char_code(DeprecatedString const& name) const +{ + auto code_iterator = m_name_mapping.find(name); + if (code_iterator != m_name_mapping.end()) + return code_iterator->value; + return 0; +} + bool Encoding::should_map_to_bullet(u16 char_code) const { // PDF Annex D table D.2, note 3: diff --git a/Userland/Libraries/LibPDF/Encoding.h b/Userland/Libraries/LibPDF/Encoding.h index 819eaa33d0..f34dde17fe 100644 --- a/Userland/Libraries/LibPDF/Encoding.h +++ b/Userland/Libraries/LibPDF/Encoding.h @@ -645,6 +645,7 @@ public: HashMap const& descriptors() const { return m_descriptors; } HashMap const& name_mapping() const { return m_name_mapping; } + u16 get_char_code(DeprecatedString const&) const; CharDescriptor const& get_char_code_descriptor(u16 char_code) const; bool should_map_to_bullet(u16 char_code) const; diff --git a/Userland/Libraries/LibPDF/Fonts/PS1FontProgram.cpp b/Userland/Libraries/LibPDF/Fonts/PS1FontProgram.cpp index cc11e481cb..99e70ba799 100644 --- a/Userland/Libraries/LibPDF/Fonts/PS1FontProgram.cpp +++ b/Userland/Libraries/LibPDF/Fonts/PS1FontProgram.cpp @@ -92,8 +92,8 @@ PDFErrorOr PS1FontProgram::parse_encrypted_portion(ByteBuffer const& buffe if (rd == "-|" || rd == "RD") { auto line = TRY(decrypt(reader.bytes().slice(reader.offset(), encrypted_size), m_encryption_key, m_lenIV)); reader.move_by(encrypted_size); - auto name_mapping = encoding()->name_mapping(); - auto char_code = name_mapping.ensure(word.substring_view(1)); + auto glyph_name = word.substring_view(1); + auto char_code = encoding()->get_char_code(glyph_name); GlyphParserState state; TRY(add_glyph(char_code, TRY(parse_glyph(line, subroutines, state, false)))); }