/*
* 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.pdfbox.pdmodel.font.encoding;
import org.apache.pdfbox.cos.COSBase;
import org.apache.pdfbox.cos.COSName;
/**
* This is an interface to a text encoder.
*/
public class MacExpertEncoding extends Encoding
{
private static final int CHAR_CODE = 0;
private static final int CHAR_NAME = 1;
/**
* Table of octal character codes and their corresponding names.
*/
private static final Object[][] MAC_EXPERT_ENCODING_TABLE = {
{0276, "AEsmall"},
{0207, "Aacutesmall"},
{0211, "Acircumflexsmall"},
{047, "Acutesmall"},
{0212, "Adieresissmall"},
{0210, "Agravesmall"},
{0214, "Aringsmall"},
{0141, "Asmall"},
{0213, "Atildesmall"},
{0363, "Brevesmall"},
{0142, "Bsmall"},
{0256, "Caronsmall"},
{0215, "Ccedillasmall"},
{0311, "Cedillasmall"},
{0136, "Circumflexsmall"},
{0143, "Csmall"},
{0254, "Dieresissmall"},
{0372, "Dotaccentsmall"},
{0144, "Dsmall"},
{0216, "Eacutesmall"},
{0220, "Ecircumflexsmall"},
{0221, "Edieresissmall"},
{0217, "Egravesmall"},
{0145, "Esmall"},
{0104, "Ethsmall"},
{0146, "Fsmall"},
{0140, "Gravesmall"},
{0147, "Gsmall"},
{0150, "Hsmall"},
{042, "Hungarumlautsmall"},
{0222, "Iacutesmall"},
{0224, "Icircumflexsmall"},
{0225, "Idieresissmall"},
{0223, "Igravesmall"},
{0151, "Ismall"},
{0152, "Jsmall"},
{0153, "Ksmall"},
{0302, "Lslashsmall"},
{0154, "Lsmall"},
{0364, "Macronsmall"},
{0155, "Msmall"},
{0156, "Nsmall"},
{0226, "Ntildesmall"},
{0317, "OEsmall"},
{0227, "Oacutesmall"},
{0231, "Ocircumflexsmall"},
{0232, "Odieresissmall"},
{0362, "Ogoneksmall"},
{0230, "Ogravesmall"},
{0277, "Oslashsmall"},
{0157, "Osmall"},
{0233, "Otildesmall"},
{0160, "Psmall"},
{0161, "Qsmall"},
{0373, "Ringsmall"},
{0162, "Rsmall"},
{0247, "Scaronsmall"},
{0163, "Ssmall"},
{0271, "Thornsmall"},
{0176, "Tildesmall"},
{0164, "Tsmall"},
{0234, "Uacutesmall"},
{0236, "Ucircumflexsmall"},
{0237, "Udieresissmall"},
{0235, "Ugravesmall"},
{0165, "Usmall"},
{0166, "Vsmall"},
{0167, "Wsmall"},
{0170, "Xsmall"},
{0264, "Yacutesmall"},
{0330, "Ydieresissmall"},
{0171, "Ysmall"},
{0275, "Zcaronsmall"},
{0172, "Zsmall"},
{046, "ampersandsmall"},
{0201, "asuperior"},
{0365, "bsuperior"},
{0251, "centinferior"},
{043, "centoldstyle"},
{0202, "centsuperior"},
{072, "colon"},
{0173, "colonmonetary"},
{054, "comma"},
{0262, "commainferior"},
{0370, "commasuperior"},
{0266, "dollarinferior"},
{044, "dollaroldstyle"},
{045, "dollarsuperior"},
{0353, "dsuperior"},
{0245, "eightinferior"},
{070, "eightoldstyle"},
{0241, "eightsuperior"},
{0344, "esuperior"},
{0326, "exclamdownsmall"},
{041, "exclamsmall"},
{0126, "ff"},
{0131, "ffi"},
{0132, "ffl"},
{0127, "fi"},
{0320, "figuredash"},
{0114, "fiveeighths"},
{0260, "fiveinferior"},
{065, "fiveoldstyle"},
{0336, "fivesuperior"},
{0130, "fl"},
{0242, "fourinferior"},
{064, "fouroldstyle"},
{0335, "foursuperior"},
{057, "fraction"},
{055, "hyphen"},
{0137, "hypheninferior"},
{0321, "hyphensuperior"},
{0351, "isuperior"},
{0361, "lsuperior"},
{0367, "msuperior"},
{0273, "nineinferior"},
{071, "nineoldstyle"},
{0341, "ninesuperior"},
{0366, "nsuperior"},
{053, "onedotenleader"},
{0112, "oneeighth"},
{0174, "onefitted"},
{0110, "onehalf"},
{0301, "oneinferior"},
{061, "oneoldstyle"},
{0107, "onequarter"},
{0332, "onesuperior"},
{0116, "onethird"},
{0257, "osuperior"},
{0133, "parenleftinferior"},
{050, "parenleftsuperior"},
{0135, "parenrightinferior"},
{051, "parenrightsuperior"},
{056, "period"},
{0263, "periodinferior"},
{0371, "periodsuperior"},
{0300, "questiondownsmall"},
{077, "questionsmall"},
{0345, "rsuperior"},
{0175, "rupiah"},
{073, "semicolon"},
{0115, "seveneighths"},
{0246, "seveninferior"},
{067, "sevenoldstyle"},
{0340, "sevensuperior"},
{0244, "sixinferior"},
{066, "sixoldstyle"},
{0337, "sixsuperior"},
{040, "space"},
{0352, "ssuperior"},
{0113, "threeeighths"},
{0243, "threeinferior"},
{063, "threeoldstyle"},
{0111, "threequarters"},
{075, "threequartersemdash"},
{0334, "threesuperior"},
{0346, "tsuperior"},
{052, "twodotenleader"},
{0252, "twoinferior"},
{062, "twooldstyle"},
{0333, "twosuperior"},
{0117, "twothirds"},
{0274, "zeroinferior"},
{060, "zerooldstyle"},
{0342, "zerosuperior"}
};
/**
* Singleton instance of this class.
*/
public static final MacExpertEncoding INSTANCE = new MacExpertEncoding();
/**
* Constructor.
*/
public MacExpertEncoding()
{
for (Object[] encodingEntry : MAC_EXPERT_ENCODING_TABLE)
{
add((Integer) encodingEntry[CHAR_CODE], encodingEntry[CHAR_NAME].toString());
}
}
@Override
public COSBase getCOSObject()
{
return COSName.MAC_EXPERT_ENCODING;
}
@Override
public String getEncodingName()
{
return "MacExpertEncoding";
}
}