381 lines
14 KiB
C#
381 lines
14 KiB
C#
using System;
|
|
using System.Collections;
|
|
using iTextSharp.text;
|
|
/*
|
|
* $Id: EntitiesToSymbol.cs,v 1.3 2008/05/13 11:26:14 psoares33 Exp $
|
|
*
|
|
*
|
|
* Copyright 1999, 2000, 2001, 2002 Bruno Lowagie.
|
|
*
|
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
|
* (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.mozilla.org/MPL/
|
|
*
|
|
* Software distributed under the License is distributed on an "AS IS" basis,
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
|
|
* for the specific language governing rights and limitations under the License.
|
|
*
|
|
* The Original Code is 'iText, a free JAVA-PDF library'.
|
|
*
|
|
* The Initial Developer of the Original Code is Bruno Lowagie. Portions created by
|
|
* the Initial Developer are Copyright (C) 1999, 2000, 2001, 2002 by Bruno Lowagie.
|
|
* All Rights Reserved.
|
|
* Co-Developer of the code is Paulo Soares. Portions created by the Co-Developer
|
|
* are Copyright (C) 2000, 2001, 2002 by Paulo Soares. All Rights Reserved.
|
|
*
|
|
* Contributor(s): all the names of the contributors are added in the source code
|
|
* where applicable.
|
|
*
|
|
* Alternatively, the contents of this file may be used under the terms of the
|
|
* LGPL license (the "GNU LIBRARY GENERAL PUBLIC LICENSE"), in which case the
|
|
* provisions of LGPL are applicable instead of those above. If you wish to
|
|
* allow use of your version of this file only under the terms of the LGPL
|
|
* License and not to allow others to use your version of this file under
|
|
* the MPL, indicate your decision by deleting the provisions above and
|
|
* replace them with the notice and other provisions required by the LGPL.
|
|
* If you do not delete the provisions above, a recipient may use your version
|
|
* of this file under either the MPL or the GNU LIBRARY GENERAL PUBLIC LICENSE.
|
|
*
|
|
* This library is free software; you can redistribute it and/or modify it
|
|
* under the terms of the MPL as stated above or under the terms of the GNU
|
|
* Library General Public License as published by the Free Software Foundation;
|
|
* either version 2 of the License, or any later version.
|
|
*
|
|
* This library 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 Library general Public License for more
|
|
* details.
|
|
*
|
|
* If you didn't download this code from the following link, you should check if
|
|
* you aren't using an obsolete version:
|
|
* http://www.lowagie.com/iText/
|
|
*/
|
|
|
|
namespace iTextSharp.text.xml.simpleparser {
|
|
|
|
/**
|
|
* This class contains entities that can be used in an entity tag.
|
|
*/
|
|
|
|
public class EntitiesToSymbol {
|
|
|
|
/**
|
|
* This is a map that contains all possible id values of the entity tag
|
|
* that can be translated to a character in font Symbol.
|
|
*/
|
|
public static readonly Hashtable map;
|
|
|
|
static EntitiesToSymbol() {
|
|
map = new Hashtable();
|
|
map["169"] = (char)227;
|
|
map["172"] = (char)216;
|
|
map["174"] = (char)210;
|
|
map["177"] = (char)177;
|
|
map["215"] = (char)180;
|
|
map["247"] = (char)184;
|
|
map["8230"] = (char)188;
|
|
map["8242"] = (char)162;
|
|
map["8243"] = (char)178;
|
|
map["8260"] = (char)164;
|
|
map["8364"] = (char)240;
|
|
map["8465"] = (char)193;
|
|
map["8472"] = (char)195;
|
|
map["8476"] = (char)194;
|
|
map["8482"] = (char)212;
|
|
map["8501"] = (char)192;
|
|
map["8592"] = (char)172;
|
|
map["8593"] = (char)173;
|
|
map["8594"] = (char)174;
|
|
map["8595"] = (char)175;
|
|
map["8596"] = (char)171;
|
|
map["8629"] = (char)191;
|
|
map["8656"] = (char)220;
|
|
map["8657"] = (char)221;
|
|
map["8658"] = (char)222;
|
|
map["8659"] = (char)223;
|
|
map["8660"] = (char)219;
|
|
map["8704"] = (char)34;
|
|
map["8706"] = (char)182;
|
|
map["8707"] = (char)36;
|
|
map["8709"] = (char)198;
|
|
map["8711"] = (char)209;
|
|
map["8712"] = (char)206;
|
|
map["8713"] = (char)207;
|
|
map["8717"] = (char)39;
|
|
map["8719"] = (char)213;
|
|
map["8721"] = (char)229;
|
|
map["8722"] = (char)45;
|
|
map["8727"] = (char)42;
|
|
map["8729"] = (char)183;
|
|
map["8730"] = (char)214;
|
|
map["8733"] = (char)181;
|
|
map["8734"] = (char)165;
|
|
map["8736"] = (char)208;
|
|
map["8743"] = (char)217;
|
|
map["8744"] = (char)218;
|
|
map["8745"] = (char)199;
|
|
map["8746"] = (char)200;
|
|
map["8747"] = (char)242;
|
|
map["8756"] = (char)92;
|
|
map["8764"] = (char)126;
|
|
map["8773"] = (char)64;
|
|
map["8776"] = (char)187;
|
|
map["8800"] = (char)185;
|
|
map["8801"] = (char)186;
|
|
map["8804"] = (char)163;
|
|
map["8805"] = (char)179;
|
|
map["8834"] = (char)204;
|
|
map["8835"] = (char)201;
|
|
map["8836"] = (char)203;
|
|
map["8838"] = (char)205;
|
|
map["8839"] = (char)202;
|
|
map["8853"] = (char)197;
|
|
map["8855"] = (char)196;
|
|
map["8869"] = (char)94;
|
|
map["8901"] = (char)215;
|
|
map["8992"] = (char)243;
|
|
map["8993"] = (char)245;
|
|
map["9001"] = (char)225;
|
|
map["9002"] = (char)241;
|
|
map["913"] = (char)65;
|
|
map["914"] = (char)66;
|
|
map["915"] = (char)71;
|
|
map["916"] = (char)68;
|
|
map["917"] = (char)69;
|
|
map["918"] = (char)90;
|
|
map["919"] = (char)72;
|
|
map["920"] = (char)81;
|
|
map["921"] = (char)73;
|
|
map["922"] = (char)75;
|
|
map["923"] = (char)76;
|
|
map["924"] = (char)77;
|
|
map["925"] = (char)78;
|
|
map["926"] = (char)88;
|
|
map["927"] = (char)79;
|
|
map["928"] = (char)80;
|
|
map["929"] = (char)82;
|
|
map["931"] = (char)83;
|
|
map["932"] = (char)84;
|
|
map["933"] = (char)85;
|
|
map["934"] = (char)70;
|
|
map["935"] = (char)67;
|
|
map["936"] = (char)89;
|
|
map["937"] = (char)87;
|
|
map["945"] = (char)97;
|
|
map["946"] = (char)98;
|
|
map["947"] = (char)103;
|
|
map["948"] = (char)100;
|
|
map["949"] = (char)101;
|
|
map["950"] = (char)122;
|
|
map["951"] = (char)104;
|
|
map["952"] = (char)113;
|
|
map["953"] = (char)105;
|
|
map["954"] = (char)107;
|
|
map["955"] = (char)108;
|
|
map["956"] = (char)109;
|
|
map["957"] = (char)110;
|
|
map["958"] = (char)120;
|
|
map["959"] = (char)111;
|
|
map["960"] = (char)112;
|
|
map["961"] = (char)114;
|
|
map["962"] = (char)86;
|
|
map["963"] = (char)115;
|
|
map["964"] = (char)116;
|
|
map["965"] = (char)117;
|
|
map["966"] = (char)102;
|
|
map["967"] = (char)99;
|
|
map["9674"] = (char)224;
|
|
map["968"] = (char)121;
|
|
map["969"] = (char)119;
|
|
map["977"] = (char)74;
|
|
map["978"] = (char)161;
|
|
map["981"] = (char)106;
|
|
map["982"] = (char)118;
|
|
map["9824"] = (char)170;
|
|
map["9827"] = (char)167;
|
|
map["9829"] = (char)169;
|
|
map["9830"] = (char)168;
|
|
map["Alpha"] = (char)65;
|
|
map["Beta"] = (char)66;
|
|
map["Chi"] = (char)67;
|
|
map["Delta"] = (char)68;
|
|
map["Epsilon"] = (char)69;
|
|
map["Eta"] = (char)72;
|
|
map["Gamma"] = (char)71;
|
|
map["Iota"] = (char)73;
|
|
map["Kappa"] = (char)75;
|
|
map["Lambda"] = (char)76;
|
|
map["Mu"] = (char)77;
|
|
map["Nu"] = (char)78;
|
|
map["Omega"] = (char)87;
|
|
map["Omicron"] = (char)79;
|
|
map["Phi"] = (char)70;
|
|
map["Pi"] = (char)80;
|
|
map["Prime"] = (char)178;
|
|
map["Psi"] = (char)89;
|
|
map["Rho"] = (char)82;
|
|
map["Sigma"] = (char)83;
|
|
map["Tau"] = (char)84;
|
|
map["Theta"] = (char)81;
|
|
map["Upsilon"] = (char)85;
|
|
map["Xi"] = (char)88;
|
|
map["Zeta"] = (char)90;
|
|
map["alefsym"] = (char)192;
|
|
map["alpha"] = (char)97;
|
|
map["and"] = (char)217;
|
|
map["ang"] = (char)208;
|
|
map["asymp"] = (char)187;
|
|
map["beta"] = (char)98;
|
|
map["cap"] = (char)199;
|
|
map["chi"] = (char)99;
|
|
map["clubs"] = (char)167;
|
|
map["cong"] = (char)64;
|
|
map["copy"] = (char)211;
|
|
map["crarr"] = (char)191;
|
|
map["cup"] = (char)200;
|
|
map["dArr"] = (char)223;
|
|
map["darr"] = (char)175;
|
|
map["delta"] = (char)100;
|
|
map["diams"] = (char)168;
|
|
map["divide"] = (char)184;
|
|
map["empty"] = (char)198;
|
|
map["epsilon"] = (char)101;
|
|
map["equiv"] = (char)186;
|
|
map["eta"] = (char)104;
|
|
map["euro"] = (char)240;
|
|
map["exist"] = (char)36;
|
|
map["forall"] = (char)34;
|
|
map["frasl"] = (char)164;
|
|
map["gamma"] = (char)103;
|
|
map["ge"] = (char)179;
|
|
map["hArr"] = (char)219;
|
|
map["harr"] = (char)171;
|
|
map["hearts"] = (char)169;
|
|
map["hellip"] = (char)188;
|
|
map["horizontal arrow extender"] = (char)190;
|
|
map["image"] = (char)193;
|
|
map["infin"] = (char)165;
|
|
map["int"] = (char)242;
|
|
map["iota"] = (char)105;
|
|
map["isin"] = (char)206;
|
|
map["kappa"] = (char)107;
|
|
map["lArr"] = (char)220;
|
|
map["lambda"] = (char)108;
|
|
map["lang"] = (char)225;
|
|
map["large brace extender"] = (char)239;
|
|
map["large integral extender"] = (char)244;
|
|
map["large left brace (bottom)"] = (char)238;
|
|
map["large left brace (middle)"] = (char)237;
|
|
map["large left brace (top)"] = (char)236;
|
|
map["large left bracket (bottom)"] = (char)235;
|
|
map["large left bracket (extender)"] = (char)234;
|
|
map["large left bracket (top)"] = (char)233;
|
|
map["large left parenthesis (bottom)"] = (char)232;
|
|
map["large left parenthesis (extender)"] = (char)231;
|
|
map["large left parenthesis (top)"] = (char)230;
|
|
map["large right brace (bottom)"] = (char)254;
|
|
map["large right brace (middle)"] = (char)253;
|
|
map["large right brace (top)"] = (char)252;
|
|
map["large right bracket (bottom)"] = (char)251;
|
|
map["large right bracket (extender)"] = (char)250;
|
|
map["large right bracket (top)"] = (char)249;
|
|
map["large right parenthesis (bottom)"] = (char)248;
|
|
map["large right parenthesis (extender)"] = (char)247;
|
|
map["large right parenthesis (top)"] = (char)246;
|
|
map["larr"] = (char)172;
|
|
map["le"] = (char)163;
|
|
map["lowast"] = (char)42;
|
|
map["loz"] = (char)224;
|
|
map["minus"] = (char)45;
|
|
map["mu"] = (char)109;
|
|
map["nabla"] = (char)209;
|
|
map["ne"] = (char)185;
|
|
map["not"] = (char)216;
|
|
map["notin"] = (char)207;
|
|
map["nsub"] = (char)203;
|
|
map["nu"] = (char)110;
|
|
map["omega"] = (char)119;
|
|
map["omicron"] = (char)111;
|
|
map["oplus"] = (char)197;
|
|
map["or"] = (char)218;
|
|
map["otimes"] = (char)196;
|
|
map["part"] = (char)182;
|
|
map["perp"] = (char)94;
|
|
map["phi"] = (char)102;
|
|
map["pi"] = (char)112;
|
|
map["piv"] = (char)118;
|
|
map["plusmn"] = (char)177;
|
|
map["prime"] = (char)162;
|
|
map["prod"] = (char)213;
|
|
map["prop"] = (char)181;
|
|
map["psi"] = (char)121;
|
|
map["rArr"] = (char)222;
|
|
map["radic"] = (char)214;
|
|
map["radical extender"] = (char)96;
|
|
map["rang"] = (char)241;
|
|
map["rarr"] = (char)174;
|
|
map["real"] = (char)194;
|
|
map["reg"] = (char)210;
|
|
map["rho"] = (char)114;
|
|
map["sdot"] = (char)215;
|
|
map["sigma"] = (char)115;
|
|
map["sigmaf"] = (char)86;
|
|
map["sim"] = (char)126;
|
|
map["spades"] = (char)170;
|
|
map["sub"] = (char)204;
|
|
map["sube"] = (char)205;
|
|
map["sum"] = (char)229;
|
|
map["sup"] = (char)201;
|
|
map["supe"] = (char)202;
|
|
map["tau"] = (char)116;
|
|
map["there4"] = (char)92;
|
|
map["theta"] = (char)113;
|
|
map["thetasym"] = (char)74;
|
|
map["times"] = (char)180;
|
|
map["trade"] = (char)212;
|
|
map["uArr"] = (char)221;
|
|
map["uarr"] = (char)173;
|
|
map["upsih"] = (char)161;
|
|
map["upsilon"] = (char)117;
|
|
map["vertical arrow extender"] = (char)189;
|
|
map["weierp"] = (char)195;
|
|
map["xi"] = (char)120;
|
|
map["zeta"] = (char)122;
|
|
}
|
|
|
|
/**
|
|
* Gets a chunk with a symbol character.
|
|
* @param e a symbol value (see Entities class: alfa is greek alfa,...)
|
|
* @param font the font if the symbol isn't found (otherwise Font.SYMBOL)
|
|
* @return a Chunk
|
|
*/
|
|
|
|
public static Chunk Get(String e, Font font) {
|
|
char s = GetCorrespondingSymbol(e);
|
|
if (s == '\0') {
|
|
try {
|
|
return new Chunk("" + (char)int.Parse(e), font);
|
|
}
|
|
catch (Exception) {
|
|
return new Chunk(e, font);
|
|
}
|
|
}
|
|
Font symbol = new Font(Font.SYMBOL, font.Size, font.Style, font.Color);
|
|
return new Chunk(s.ToString(), symbol);
|
|
}
|
|
|
|
/**
|
|
* Looks for the corresponding symbol in the font Symbol.
|
|
*
|
|
* @param name the name of the entity
|
|
* @return the corresponding character in font Symbol
|
|
*/
|
|
|
|
public static char GetCorrespondingSymbol(String name) {
|
|
if (map.ContainsKey(name))
|
|
return (char)map[name];
|
|
else
|
|
return '\0';
|
|
}
|
|
}
|
|
} |