# -*- encoding: utf-8; frozen_string_literal: true -*-
#
#--
# This file is part of HexaPDF.
#
# HexaPDF - A Versatile PDF Creation and Manipulation Library For Ruby
# Copyright (C) 2014-2023 Thomas Leitner
#
# HexaPDF is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License version 3 as
# published by the Free Software Foundation with the addition of the
# following permission added to Section 15 as permitted in Section 7(a):
# FOR ANY PART OF THE COVERED WORK IN WHICH THE COPYRIGHT IS OWNED BY
# THOMAS LEITNER, THOMAS LEITNER DISCLAIMS THE WARRANTY OF NON
# INFRINGEMENT OF THIRD PARTY RIGHTS.
#
# HexaPDF is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public
# License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with HexaPDF. If not, see .
#
# The interactive user interfaces in modified source and object code
# versions of HexaPDF must display Appropriate Legal Notices, as required
# under Section 5 of the GNU Affero General Public License version 3.
#
# In accordance with Section 7(b) of the GNU Affero General Public
# License, a covered work must retain the producer line in every PDF that
# is created or manipulated using HexaPDF.
#
# If the GNU Affero General Public License doesn't fit your need,
# commercial licenses are available at .
#++
require 'hexapdf/font/encoding/base'
module HexaPDF
module Font
module Encoding
# The Adobe standard encoding for Latin texts.
#
# See: PDF2.0 sD.1, sD.2
class StandardEncoding < Base
def initialize #:nodoc:
super
@encoding_name = :StandardEncoding
@code_to_name = {
0101 => :A,
0341 => :AE,
0102 => :B,
0103 => :C,
0104 => :D,
0105 => :E,
0106 => :F,
0107 => :G,
0110 => :H,
0111 => :I,
0112 => :J,
0113 => :K,
0114 => :L,
0350 => :Lslash,
0115 => :M,
0116 => :N,
0117 => :O,
0352 => :OE,
0351 => :Oslash,
0120 => :P,
0121 => :Q,
0122 => :R,
0123 => :S,
0124 => :T,
0125 => :U,
0126 => :V,
0127 => :W,
0130 => :X,
0131 => :Y,
0132 => :Z,
0141 => :a,
0302 => :acute,
0361 => :ae,
0046 => :ampersand,
0136 => :asciicircum,
0176 => :asciitilde,
0052 => :asterisk,
0100 => :at,
0142 => :b,
0134 => :backslash,
0174 => :bar,
0173 => :braceleft,
0175 => :braceright,
0133 => :bracketleft,
0135 => :bracketright,
0306 => :breve,
0267 => :bullet,
0143 => :c,
0317 => :caron,
0313 => :cedilla,
0242 => :cent,
0303 => :circumflex,
0072 => :colon,
0054 => :comma,
0250 => :currency,
0144 => :d,
0262 => :dagger,
0263 => :daggerdbl,
0310 => :dieresis,
0044 => :dollar,
0307 => :dotaccent,
0365 => :dotlessi,
0145 => :e,
0070 => :eight,
0274 => :ellipsis,
0320 => :emdash,
0261 => :endash,
0075 => :equal,
0041 => :exclam,
0241 => :exclamdown,
0146 => :f,
0256 => :fi,
0065 => :five,
0257 => :fl,
0246 => :florin,
0064 => :four,
0244 => :fraction,
0147 => :g,
0373 => :germandbls,
0301 => :grave,
0076 => :greater,
0253 => :guillemotleft,
0273 => :guillemotright,
0254 => :guilsinglleft,
0255 => :guilsinglright,
0150 => :h,
0315 => :hungarumlaut,
0055 => :hyphen,
0151 => :i,
0152 => :j,
0153 => :k,
0154 => :l,
0074 => :less,
0370 => :lslash,
0155 => :m,
0305 => :macron,
0156 => :n,
0071 => :nine,
0043 => :numbersign,
0157 => :o,
0372 => :oe,
0316 => :ogonek,
0061 => :one,
0343 => :ordfeminine,
0353 => :ordmasculine,
0371 => :oslash,
0160 => :p,
0266 => :paragraph,
0050 => :parenleft,
0051 => :parenright,
0045 => :percent,
0056 => :period,
0264 => :periodcentered,
0275 => :perthousand,
0053 => :plus,
0161 => :q,
0077 => :question,
0277 => :questiondown,
0042 => :quotedbl,
0271 => :quotedblbase,
0252 => :quotedblleft,
0272 => :quotedblright,
0140 => :quoteleft,
0047 => :quoteright,
0270 => :quotesinglbase,
0251 => :quotesingle,
0162 => :r,
0312 => :ring,
0163 => :s,
0247 => :section,
0073 => :semicolon,
0067 => :seven,
0066 => :six,
0057 => :slash,
0040 => :space,
0243 => :sterling,
0164 => :t,
0063 => :three,
0304 => :tilde,
0062 => :two,
0165 => :u,
0137 => :underscore,
0166 => :v,
0167 => :w,
0170 => :x,
0171 => :y,
0245 => :yen,
0172 => :z,
0060 => :zero,
}
end
end
end
end
end