SymbolEncoding.java
/*
* 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 SymbolEncoding extends Encoding
{
/**
* Table of octal character codes and their corresponding names.
*/
private static final Object[][] SYMBOL_ENCODING_TABLE = {
{0101, "Alpha"},
{0102, "Beta"},
{0103, "Chi"},
{0104, "Delta"},
{0105, "Epsilon"},
{0110, "Eta"},
{0240, "Euro"},
{0107, "Gamma"},
{0301, "Ifraktur"},
{0111, "Iota"},
{0113, "Kappa"},
{0114, "Lambda"},
{0115, "Mu"},
{0116, "Nu"},
{0127, "Omega"},
{0117, "Omicron"},
{0106, "Phi"},
{0120, "Pi"},
{0131, "Psi"},
{0302, "Rfraktur"},
{0122, "Rho"},
{0123, "Sigma"},
{0124, "Tau"},
{0121, "Theta"},
{0125, "Upsilon"},
{0241, "Upsilon1"},
{0130, "Xi"},
{0132, "Zeta"},
{0300, "aleph"},
{0141, "alpha"},
{0046, "ampersand"},
{0320, "angle"},
{0341, "angleleft"},
{0361, "angleright"},
{0273, "approxequal"},
{0253, "arrowboth"},
{0333, "arrowdblboth"},
{0337, "arrowdbldown"},
{0334, "arrowdblleft"},
{0336, "arrowdblright"},
{0335, "arrowdblup"},
{0257, "arrowdown"},
{0276, "arrowhorizex"},
{0254, "arrowleft"},
{0256, "arrowright"},
{0255, "arrowup"},
{0275, "arrowvertex"},
{0052, "asteriskmath"},
{0174, "bar"},
{0142, "beta"},
{0173, "braceleft"},
{0175, "braceright"},
{0354, "bracelefttp"},
{0355, "braceleftmid"},
{0356, "braceleftbt"},
{0374, "bracerighttp"},
{0375, "bracerightmid"},
{0376, "bracerightbt"},
{0357, "braceex"},
{0133, "bracketleft"},
{0135, "bracketright"},
{0351, "bracketlefttp"},
{0352, "bracketleftex"},
{0353, "bracketleftbt"},
{0371, "bracketrighttp"},
{0372, "bracketrightex"},
{0373, "bracketrightbt"},
{0267, "bullet"},
{0277, "carriagereturn"},
{0143, "chi"},
{0304, "circlemultiply"},
{0305, "circleplus"},
{0247, "club"},
{0072, "colon"},
{0054, "comma"},
{0100, "congruent"},
{0343, "copyrightsans"},
{0323, "copyrightserif"},
{0260, "degree"},
{0144, "delta"},
{0250, "diamond"},
{0270, "divide"},
{0327, "dotmath"},
{0070, "eight"},
{0316, "element"},
{0274, "ellipsis"},
{0306, "emptyset"},
{0145, "epsilon"},
{0075, "equal"},
{0272, "equivalence"},
{0150, "eta"},
{0041, "exclam"},
{0044, "existential"},
{0065, "five"},
{0246, "florin"},
{0064, "four"},
{0244, "fraction"},
{0147, "gamma"},
{0321, "gradient"},
{0076, "greater"},
{0263, "greaterequal"},
{0251, "heart"},
{0245, "infinity"},
{0362, "integral"},
{0363, "integraltp"},
{0364, "integralex"},
{0365, "integralbt"},
{0307, "intersection"},
{0151, "iota"},
{0153, "kappa"},
{0154, "lambda"},
{0074, "less"},
{0243, "lessequal"},
{0331, "logicaland"},
{0330, "logicalnot"},
{0332, "logicalor"},
{0340, "lozenge"},
{0055, "minus"},
{0242, "minute"},
{0155, "mu"},
{0264, "multiply"},
{0071, "nine"},
{0317, "notelement"},
{0271, "notequal"},
{0313, "notsubset"},
{0156, "nu"},
{0043, "numbersign"},
{0167, "omega"},
{0166, "omega1"},
{0157, "omicron"},
{0061, "one"},
{0050, "parenleft"},
{0051, "parenright"},
{0346, "parenlefttp"},
{0347, "parenleftex"},
{0350, "parenleftbt"},
{0366, "parenrighttp"},
{0367, "parenrightex"},
{0370, "parenrightbt"},
{0266, "partialdiff"},
{0045, "percent"},
{0056, "period"},
{0136, "perpendicular"},
{0146, "phi"},
{0152, "phi1"},
{0160, "pi"},
{0053, "plus"},
{0261, "plusminus"},
{0325, "product"},
{0314, "propersubset"},
{0311, "propersuperset"},
{0265, "proportional"},
{0171, "psi"},
{0077, "question"},
{0326, "radical"},
{0140, "radicalex"},
{0315, "reflexsubset"},
{0312, "reflexsuperset"},
{0342, "registersans"},
{0322, "registerserif"},
{0162, "rho"},
{0262, "second"},
{0073, "semicolon"},
{0067, "seven"},
{0163, "sigma"},
{0126, "sigma1"},
{0176, "similar"},
{0066, "six"},
{0057, "slash"},
{0040, "space"},
{0252, "spade"},
{0047, "suchthat"},
{0345, "summation"},
{0164, "tau"},
{0134, "therefore"},
{0161, "theta"},
{0112, "theta1"},
{0063, "three"},
{0344, "trademarksans"},
{0324, "trademarkserif"},
{0062, "two"},
{0137, "underscore"},
{0310, "union"},
{0042, "universal"},
{0165, "upsilon"},
{0303, "weierstrass"},
{0170, "xi"},
{0060, "zero"},
{0172, "zeta"}
};
/**
* Singleton instance of this class.
*/
public static final SymbolEncoding INSTANCE = new SymbolEncoding();
/**
* Constructor.
*/
private SymbolEncoding()
{
for (Object[] encodingEntry : SYMBOL_ENCODING_TABLE)
{
add((Integer) encodingEntry[CHAR_CODE], encodingEntry[CHAR_NAME].toString());
}
}
@Override
public COSBase getCOSObject()
{
return COSName.getPDFName("SymbolEncoding");
}
@Override
public String getEncodingName()
{
return "SymbolEncoding";
}
}