Class: Prawn::Font::AFM
- Includes:
- Asciidoctor::Logging
- Defined in:
- lib/asciidoctor/pdf/ext/prawn/font/afm.rb
Constant Summary collapse
- FALLBACK_CHARS =
{ ?\u200b => '', ?\u202f => ?\u00a0, ?\u2009 => ' ', ?\u2063 => ?\u00ad, ?\u25e6 => '-', ?\u25aa => ?\u00b7, }
Instance Method Summary collapse
-
#normalize_encoding(text) ⇒ Object
Patch normalize_encoding method to handle conversion more gracefully.
Instance Method Details
#normalize_encoding(text) ⇒ Object
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.
22 23 24 25 26 27 28 |
# File 'lib/asciidoctor/pdf/ext/prawn/font/afm.rb', line 22 def normalize_encoding text text.encode 'windows-1252', fallback: FALLBACK_CHARS rescue ::Encoding::UndefinedConversionError logger.warn %(The following text could not be fully converted to the Windows-1252 character set: #{text.gsub(/^/, '| ').rstrip}) if logger.info? && !@document.scratch? text.encode 'windows-1252', undef: :replace, replace: ?\u00ac end |