Sha256: f11525c568561a9eeb0802eaf3f61234cf82eecbba13c40ef165f9730c031c8a

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

class Prawn::Font::AFM
  FALLBACK_CHARS = {
    %(\u200b) => '',
    %(\u202f) => %(\u00a0),
    %(\u2009) => ' ',
    %(\u25e6) => '-',
    %(\u25aa) => %(\u00b7)
  }

  remove_method :normalize_encoding

  # Patch normalize_encoding method to handle conversion more gracefully.
  #
  # Any valid utf-8 characters that cannot be encoded to windows-1252 are
  # replaced with the logic "not" symbol and a warning is issued identifying
  # the text that cannot be converted.
  def normalize_encoding text
    text.encode 'windows-1252', fallback: FALLBACK_CHARS
  rescue ::Encoding::UndefinedConversionError
    warn 'The following text could not be fully converted to the Windows-1252 character set:'
    warn %(#{text.gsub(/^/, '| ').rstrip})
    text.encode 'windows-1252', undef: :replace, replace: %(\u00ac)
  rescue ::Encoding::InvalidByteSequenceError
    raise Prawn::Errors::IncompatibleStringEncoding,
          %(Your document includes text which is not compatible with the Windows-1252 character set.
If you need full UTF-8 support, use TTF fonts instead of the built-in PDF (AFM) fonts.)
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
asciidoctor-pdf-1.5.0.beta.1 lib/asciidoctor-pdf/prawn_ext/font/afm.rb
asciidoctor-pdf-1.5.0.alpha.18 lib/asciidoctor-pdf/prawn_ext/font/afm.rb
asciidoctor-pdf-1.5.0.alpha.17 lib/asciidoctor-pdf/prawn_ext/font/afm.rb
asciidoctor-pdf-1.5.0.alpha.16 lib/asciidoctor-pdf/prawn_ext/font/afm.rb