# frozen_string_literal: true require_relative 'ttf' module Prawn module Fonts # DFONT font. DFONT is a bunch of TrueType fonts in a single file. # # @note You shouldn't use this class directly. class DFont < TTF # Returns a list of the names of all named fonts in the given dfont file. # Note that fonts are not required to be named in a dfont file, so the # list may be empty even if the file does contain fonts. Also, note that # the list is returned in no particular order, so the first font in the # list is not necessarily the font at index 0 in the file. # # @param file [String] # @return [Array] def self.named_fonts(file) TTFunk::ResourceFile.open(file) do |f| return f.resources_for('sfnt') end end # Returns the number of fonts contained in the dfont file. # # @param file [String] # @return [Integer] def self.font_count(file) TTFunk::ResourceFile.open(file) do |f| return f.map['sfnt'][:list].length end end private def read_ttf_file TTFunk::File.from_dfont(@name, @options[:font] || 0) end end end end