/* * Copyright (c) 2022, Matthew Olsson * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace PDF { class PDFFont : public RefCounted { public: static PDFErrorOr> create(Document*, NonnullRefPtr); virtual ~PDFFont() = default; virtual u32 char_code_to_code_point(u16 char_code) const = 0; }; class Type1Font : public PDFFont { public: static PDFErrorOr> create(Document*, NonnullRefPtr); Type1Font(RefPtr to_unicode, NonnullRefPtr); ~Type1Font() override = default; u32 char_code_to_code_point(u16 char_code) const override; private: RefPtr m_to_unicode; NonnullRefPtr m_encoding; }; }