mirror of
https://github.com/RGBCube/serenity
synced 2025-07-27 22:37:35 +00:00
LibPDF: Add missing character quirk for WinAnsiEncoding fonts
Fonts with the encoding name "WinAnsiEncoding" should render missing characters above character code 040 (octal) as a "bullet" character. This patch adds Encoding::should_map_to_bullet(char_code) which is then called by char_code_to_code_point() to check if the given char code should be displayed as a bullet instead. I didn't have a good way to test this, so I've only verified that it works by manually overriding inputs to the function during the rendering stage. This takes care of a FIXME in the Annex D part of the PDF specification.
This commit is contained in:
parent
f4f5b045ca
commit
d6a3be1615
4 changed files with 20 additions and 1 deletions
|
@ -48,6 +48,9 @@ u32 TrueTypeFont::char_code_to_code_point(u16 char_code) const
|
|||
if (m_data.to_unicode)
|
||||
TODO();
|
||||
|
||||
if (m_data.encoding->should_map_to_bullet(char_code))
|
||||
return 8226; // Bullet.
|
||||
|
||||
auto descriptor = m_data.encoding->get_char_code_descriptor(char_code);
|
||||
return descriptor.code_point;
|
||||
}
|
||||
|
|
|
@ -57,6 +57,9 @@ u32 Type1Font::char_code_to_code_point(u16 char_code) const
|
|||
if (m_data.to_unicode)
|
||||
TODO();
|
||||
|
||||
if (m_data.encoding->should_map_to_bullet(char_code))
|
||||
return 8226; // Bullet.
|
||||
|
||||
auto descriptor = m_data.encoding->get_char_code_descriptor(char_code);
|
||||
return descriptor.code_point;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue