/* * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with * this work for additional information regarding copyright ownership. * The ASF licenses this file to You under the Apache License, Version 2.0 * (the "License"); you may not use this file except in compliance with * the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.apache.fontbox.cff; /** * This is specialized CFFEncoding. It's used if the EncodingId of a font is set to 0. * * @author Villu Ruusmann */ public final class CFFStandardEncoding extends CFFEncoding { private static final int CHAR_CODE = 0; private static final int CHAR_SID = 1; /** * Table of character codes and their corresponding sid. */ private static final int[][] CFF_STANDARD_ENCODING_TABLE = { {0, 0}, {1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0}, {6, 0}, {7, 0}, {8, 0}, {9, 0}, {10, 0}, {11, 0}, {12, 0}, {13, 0}, {14, 0}, {15, 0}, {16, 0}, {17, 0}, {18, 0}, {19, 0}, {20, 0}, {21, 0}, {22, 0}, {23, 0}, {24, 0}, {25, 0}, {26, 0}, {27, 0}, {28, 0}, {29, 0}, {30, 0}, {31, 0}, {32, 1}, {33, 2}, {34, 3}, {35, 4}, {36, 5}, {37, 6}, {38, 7}, {39, 8}, {40, 9}, {41, 10}, {42, 11}, {43, 12}, {44, 13}, {45, 14}, {46, 15}, {47, 16}, {48, 17}, {49, 18}, {50, 19}, {51, 20}, {52, 21}, {53, 22}, {54, 23}, {55, 24}, {56, 25}, {57, 26}, {58, 27}, {59, 28}, {60, 29}, {61, 30}, {62, 31}, {63, 32}, {64, 33}, {65, 34}, {66, 35}, {67, 36}, {68, 37}, {69, 38}, {70, 39}, {71, 40}, {72, 41}, {73, 42}, {74, 43}, {75, 44}, {76, 45}, {77, 46}, {78, 47}, {79, 48}, {80, 49}, {81, 50}, {82, 51}, {83, 52}, {84, 53}, {85, 54}, {86, 55}, {87, 56}, {88, 57}, {89, 58}, {90, 59}, {91, 60}, {92, 61}, {93, 62}, {94, 63}, {95, 64}, {96, 65}, {97, 66}, {98, 67}, {99, 68}, {100, 69}, {101, 70}, {102, 71}, {103, 72}, {104, 73}, {105, 74}, {106, 75}, {107, 76}, {108, 77}, {109, 78}, {110, 79}, {111, 80}, {112, 81}, {113, 82}, {114, 83}, {115, 84}, {116, 85}, {117, 86}, {118, 87}, {119, 88}, {120, 89}, {121, 90}, {122, 91}, {123, 92}, {124, 93}, {125, 94}, {126, 95}, {127, 0}, {128, 0}, {129, 0}, {130, 0}, {131, 0}, {132, 0}, {133, 0}, {134, 0}, {135, 0}, {136, 0}, {137, 0}, {138, 0}, {139, 0}, {140, 0}, {141, 0}, {142, 0}, {143, 0}, {144, 0}, {145, 0}, {146, 0}, {147, 0}, {148, 0}, {149, 0}, {150, 0}, {151, 0}, {152, 0}, {153, 0}, {154, 0}, {155, 0}, {156, 0}, {157, 0}, {158, 0}, {159, 0}, {160, 0}, {161, 96}, {162, 97}, {163, 98}, {164, 99}, {165, 100}, {166, 101}, {167, 102}, {168, 103}, {169, 104}, {170, 105}, {171, 106}, {172, 107}, {173, 108}, {174, 109}, {175, 110}, {176, 0}, {177, 111}, {178, 112}, {179, 113}, {180, 114}, {181, 0}, {182, 115}, {183, 116}, {184, 117}, {185, 118}, {186, 119}, {187, 120}, {188, 121}, {189, 122}, {190, 0}, {191, 123}, {192, 0}, {193, 124}, {194, 125}, {195, 126}, {196, 127}, {197, 128}, {198, 129}, {199, 130}, {200, 131}, {201, 0}, {202, 132}, {203, 133}, {204, 0}, {205, 134}, {206, 135}, {207, 136}, {208, 137}, {209, 0}, {210, 0}, {211, 0}, {212, 0}, {213, 0}, {214, 0}, {215, 0}, {216, 0}, {217, 0}, {218, 0}, {219, 0}, {220, 0}, {221, 0}, {222, 0}, {223, 0}, {224, 0}, {225, 138}, {226, 0}, {227, 139}, {228, 0}, {229, 0}, {230, 0}, {231, 0}, {232, 140}, {233, 141}, {234, 142}, {235, 143}, {236, 0}, {237, 0}, {238, 0}, {239, 0}, {240, 0}, {241, 144}, {242, 0}, {243, 0}, {244, 0}, {245, 145}, {246, 0}, {247, 0}, {248, 146}, {249, 147}, {250, 148}, {251, 149}, {252, 0}, {253, 0}, {254, 0}, {255, 0} }; private CFFStandardEncoding() { } /** * Returns an instance of the CFFStandardEncoding class. * @return an instance of CFFStandardEncoding */ public static CFFStandardEncoding getInstance() { return CFFStandardEncoding.INSTANCE; } private static final CFFStandardEncoding INSTANCE = new CFFStandardEncoding(); static { for (int[] encodingEntry : CFF_STANDARD_ENCODING_TABLE) { INSTANCE.add(encodingEntry[CHAR_CODE], encodingEntry[CHAR_SID]); } } }