1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-28 04:37:44 +00:00

LibPDF: Honor writing mode in TJ operator as well

This commit is contained in:
Nico Weber 2024-03-01 11:13:58 -05:00 committed by Andreas Kling
parent c69797fda9
commit 9e502dcfe4
3 changed files with 12 additions and 6 deletions

View file

@ -20,6 +20,11 @@ class Renderer;
// these tables in some cases. Skip reading these tables.
constexpr u32 pdf_skipped_opentype_tables = OpenType::FontOptions::SkipTables::Name | OpenType::FontOptions::SkipTables::Hmtx | OpenType::FontOptions::SkipTables::OS2;
enum class WritingMode {
Horizontal,
Vertical,
};
class PDFFont : public RefCounted<PDFFont> {
public:
static PDFErrorOr<NonnullRefPtr<PDFFont>> create(Document*, NonnullRefPtr<DictObject> const&, float font_size);
@ -29,6 +34,8 @@ public:
virtual void set_font_size(float font_size) = 0;
virtual PDFErrorOr<Gfx::FloatPoint> draw_string(Gfx::Painter&, Gfx::FloatPoint, ByteString const&, Renderer const&) = 0;
virtual WritingMode writing_mode() const { return WritingMode::Horizontal; }
// TABLE 5.20 Font flags
bool is_fixed_pitch() const { return m_flags & (1 << (1 - 1)); }
bool is_serif() const { return m_flags & (1 << (2 - 1)); }

View file

@ -27,11 +27,6 @@ public:
virtual u32 next() = 0;
};
enum class WritingMode {
Horizontal,
Vertical,
};
class Type0CMap {
public:
virtual ~Type0CMap() = default;
@ -58,6 +53,7 @@ public:
void set_font_size(float font_size) override;
PDFErrorOr<Gfx::FloatPoint> draw_string(Gfx::Painter&, Gfx::FloatPoint, ByteString const&, Renderer const&) override;
WritingMode writing_mode() const override { return m_cmap->writing_mode(); }
DeprecatedFlyString base_font_name() const { return m_base_font_name; }