347 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			347 lines
		
	
	
		
			9.7 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.Xml;
 | |
| 
 | |
| namespace CvtFont
 | |
| {
 | |
|     // <Font Family="Prestige Elite Tall" Size="10" Style="NONE" />
 | |
| 
 | |
|     public static class CvtFont
 | |
|     {
 | |
| 		public const int ELITE			= 0;
 | |
| 		public const int PICA			= 1;
 | |
| 		public const int LN_PRN			= 2;
 | |
| 		public const int CONDENSE		= 3;
 | |
| 		public const int SANSERIF		= 4;
 | |
| 		public const int PICA12 		= 5;
 | |
| 		public const int PROPORTIONAL	= 6;
 | |
| 		public const int PROPT12		= 7;
 | |
| 		public const int HVLPT18		= 8;
 | |
| 		public const int HVLPT25		= 9;
 | |
| 		public const int SPECIALCHARS	= 10;
 | |
| 		public const int PT14			= 11;
 | |
| 		public const int SANSERIF14		= 12;
 | |
| 		public const int SANSERIF17		= 13;
 | |
| 		public const int HVLPT12		= 14;
 | |
| 		public const int NARRATOR		= 15;
 | |
| 		public const int MEDUPUNIVERS	= 16;
 | |
| 		public const int LGUPMED16		= 17;
 | |
| 		/* Old name for PROPT10: public const int PT12BOLD=18 */
 | |
| 		public const int PROPT10		= 18;
 | |
| 		public const int LG1275HP4SI	= 19;
 | |
| 		public const int HVLPT10		= 20;
 | |
| 		public const int HVLPT8			= 21;
 | |
| 		public const int HVLPT14		= 22;
 | |
| 		public const int SANSERIF25		= 23;
 | |
| 		public const int EYECHART		= 24;
 | |
| 		public const int TIMES11		= 25;
 | |
| 		public const int SANSCOND = 26;
 | |
| 
 | |
|         private static string [] OldNames = {
 | |
|             "Elite",
 | |
|             "Pica",
 | |
|             "LnPrn",
 | |
|             "Condense",
 | |
|             "SanSerif",
 | |
|             "Pica12",
 | |
|             "Proportional",
 | |
|             "Propt12",
 | |
|             "HvlPt18",
 | |
|             "HvlPt25",
 | |
|             "SpecialChars",
 | |
|             "Pt14",
 | |
|             "SanSerif14",
 | |
|             "SanSerif17",
 | |
|             "HvlPt12",
 | |
|             "Narrator",
 | |
|             "MedUpUnivers",
 | |
|             "LgUpMed16",
 | |
|             "Propt10",
 | |
|             "Lg1275Hp4Si",
 | |
|             "HvlPt10",
 | |
|             "HvlPt8",
 | |
|             "HvlPt14",
 | |
|             "SanSerif25",
 | |
|             "EyeChart",
 | |
|             "Times11",
 | |
|             "SansCond",
 | |
|             "BigScript"
 | |
|         };
 | |
|         private static string[] NewXML = {
 | |
|             "<Font Family=\"Prestige Elite Tall\" Size=\"10\"/>",
 | |
|             "<Font Family=\"Courier New\" Size=\"12\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"7\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"7\"/>",
 | |
|             "<Font Family=\"Letter Gothic\" Size=\"10\"/>",
 | |
|             "<Font Family=\"Courier New\" Size=\"12\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"18\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"11\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"18\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"25\"/>",
 | |
|             "<Font Family=\"VolianDraw XXXXXX\" Size=\"12\"/>",
 | |
|             "<Font Family=\"Letter Gothic\" Size=\"12\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"14\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"17\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"12\"/>",
 | |
|             "<Font Family=\"Gothic Ultra\" Size=\"12\"/>",
 | |
|             "<Font Family=\"NA\" Size=\"na\"/>",
 | |
|             "<Font Family=\"Letter Gothic Tall\" Size=\"7\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"0\"/>",
 | |
|             "<Font Family=\"Letter Gothic Tall\" Size=\"10\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"10\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"8\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"14\"/>",
 | |
|             "<Font Family=\"Arial\" Size=\"25\"/>",
 | |
|             "<Font Family=\"Gothic Ultra\" Size=\"14\"/>",
 | |
|             "<Font Family=\"Times New Roman\" Size=\"11\"/>",
 | |
|             "<Font Family=\"Letter Gothic\" Size=\"7\"/>",
 | |
|             "<Font Family=\"VolianScript\" Size=\"32\"/>"
 | |
|         };
 | |
|         private static string[] NewFamily = {
 | |
|             "Prestige Elite Tall",
 | |
|             "Courier New",
 | |
|             "Times New Roman",
 | |
|             "Times New Roman",
 | |
|             "Letter Gothic",
 | |
|             "Courier New",
 | |
|             "Arial",
 | |
|             "Arial",
 | |
|             "Times New Roman",
 | |
|             "Times New Roman",
 | |
|             "VolianDraw XXXXXX",
 | |
|             "Letter Gothic",
 | |
|             "Arial",
 | |
|             "Arial",
 | |
|             "Times New Roman",
 | |
|             "Gothic Ultra",
 | |
|             "NA",
 | |
|             "Letter Gothic Tall",
 | |
|             "Arial",
 | |
|             "Letter Gothic Tall",
 | |
|             "Times New Roman",
 | |
|             "Times New Roman",
 | |
|             "Times New Roman",
 | |
|             "Arial",
 | |
|             "Gothic Ultra",
 | |
|             "Times New Roman",
 | |
|             "Letter Gothic",
 | |
|             "VolianScript"
 | |
|         };
 | |
|         private static int[] NewSize = {
 | |
|             10,
 | |
|             12,
 | |
|             7,
 | |
|             7,
 | |
|             10,
 | |
|             12,
 | |
|             18,
 | |
|             11,
 | |
|             18,
 | |
|             25,
 | |
|             12,
 | |
|             12,
 | |
|             14,
 | |
|             17,
 | |
|             12,
 | |
|             12,
 | |
|             0,
 | |
|             7,
 | |
|             0,
 | |
|             10,
 | |
|             10,
 | |
|             8,
 | |
|             14,
 | |
|             25,
 | |
|             14,
 | |
|             11,
 | |
|             7,
 | |
|             32
 | |
|         };
 | |
| 		/* The following array is not used for the migration.  It is here to capture the
 | |
| 		 * values.  Note that their was a difference in values in 16-bit for some of the fonts,
 | |
| 		 * as compared to the CPIS below.  These fonts are PICA12, PROPT10 (PT12BOLD), HVLPT10,
 | |
| 		 * HVLPT8, HVLPT14.  This was causing an incorrect results on placement of some of pagelist
 | |
| 		 * items in 16bit.  What this means is that some of the 32bit will not compare identically
 | |
| 		 * with 16bit output.
 | |
| 		 */
 | |
| 		private static float[] PrintPitch = {
 | |
| 			12,     //ELITE
 | |
| 			10,		//PICA
 | |
| 			16.66F,	//LN_PRN
 | |
| 			16.67F,	//CONDENSE
 | |
| 			12,		//SANSERIF
 | |
| 			12,		//PICA12
 | |
| 			10,		//PROPORTIONAL
 | |
| 			10,		//PROPT12
 | |
| 			12,		//HVLPT18
 | |
| 			12,		//HVLPT25
 | |
| 			10,		//SPECIALCHARS
 | |
| 			10,		//PT14
 | |
| 			12,		//SANSERIF14
 | |
| 			12,		//SANSERIF17
 | |
| 			12,		//HVLPT12
 | |
| 			10,		//NARRATOR
 | |
| 			16.67F,	//MEDUPUNIVERS
 | |
| 			16.67F,	//LGUPMED16
 | |
| 			10,		//PROPT10
 | |
| 			12,		//LG1275HP4SI
 | |
| 			12,		//HVLPT10
 | |
| 			12,		//HVLPT8
 | |
| 			12,		//HVLPT14
 | |
| 			12,		//SANSERIF25
 | |
| 			8.11F,	//EYECHART
 | |
| 			12,		//TIMES11
 | |
| 			16.67F,	//SANSCOND
 | |
| 			8		//VOLIANSCRIPT??
 | |
| 		};
 | |
| 		private static float[] CPIS = {
 | |
| 			12,			// ELITE                
 | |
| 			10,			// PICA
 | |
| 			16.66F,		// LN_PRN               
 | |
| 			16.665F,		// CONDENSE     
 | |
| 			12,			// SANSERIF     
 | |
| 			10,			// PICA12       
 | |
| 			10,			// PROPORTIONAL 
 | |
| 			10,			// PROPT12              
 | |
| 			12,			// HVLPT18              
 | |
| 			12,			// HVLPT25              
 | |
| 			10,			// SPECIALCHARS 
 | |
| 			10,			// PT14         
 | |
| 			12,			// SANSERIF14
 | |
| 			12,			// SANSERIF17
 | |
| 			12,			// HVLPT12
 | |
| 			10,			// NARRATOR
 | |
| 			16.67F,		// MEDUPUNIVERS - medium upright univers fonts (HP3 internal)
 | |
| 			16.67F,		// LGUPMED16    - Letter Gothic Upright Medium 16.67
 | |
| 			12,			// PT12BOLD
 | |
| 			12.50F,		// LG1275HP4SI
 | |
| 			10,			// HVLPT10
 | |
| 			8,			// HVLPT8
 | |
| 			14,			// HVLP14
 | |
| 			12,			// SANSERIF25
 | |
| 			8,			// EYECHART
 | |
| 			12,			// TIMES11
 | |
| 			16.665F		// SANSCOND
 | |
| 		};
 | |
| 		private static float[] CPISBadPICA12 = {
 | |
| 			12,			// ELITE                
 | |
| 			10,			// PICA
 | |
| 			16.66F,		// LN_PRN               
 | |
| 			16.665F,		// CONDENSE     
 | |
| 			12,			// SANSERIF     
 | |
| 			12,			// PICA12       
 | |
| 			10,			// PROPORTIONAL 
 | |
| 			10,			// PROPT12              
 | |
| 			12,			// HVLPT18              
 | |
| 			12,			// HVLPT25              
 | |
| 			10,			// SPECIALCHARS 
 | |
| 			10,			// PT14         
 | |
| 			12,			// SANSERIF14
 | |
| 			12,			// SANSERIF17
 | |
| 			12,			// HVLPT12
 | |
| 			10,			// NARRATOR
 | |
| 			16.67F,		// MEDUPUNIVERS - medium upright univers fonts (HP3 internal)
 | |
| 			16.67F,		// LGUPMED16    - Letter Gothic Upright Medium 16.67
 | |
| 			12,			// PT12BOLD
 | |
| 			12.50F,		// LG1275HP4SI
 | |
| 			10,			// HVLPT10
 | |
| 			8,			// HVLPT8
 | |
| 			14,			// HVLP14
 | |
| 			12,			// SANSERIF25
 | |
| 			8,			// EYECHART
 | |
| 			12,			// TIMES11
 | |
| 			16.665F		// SANSCOND
 | |
| 		};
 | |
|         private static Dictionary<string, string> OldToNewStrings=null;
 | |
|         public static string ConvertToString(string oldstr)
 | |
|         {
 | |
|             if (OldToNewStrings == null) InitializeDictionary();
 | |
|             return OldToNewStrings[oldstr];
 | |
|         }
 | |
| 
 | |
|         public static string ConvertToFamily(string oldstr)
 | |
|         {
 | |
|             int i = 0;
 | |
|             foreach (string str in OldNames)
 | |
|             {
 | |
|                 if (str == oldstr) return NewFamily[i];
 | |
|                 i++;
 | |
|             }
 | |
|             return null;
 | |
|         }
 | |
|         public static int ConvertToSize(string oldstr)
 | |
|         {
 | |
|             int i = 0;
 | |
|             foreach (string str in OldNames)
 | |
|             {
 | |
|                 if (str == oldstr) return NewSize[i];
 | |
|                 i++;
 | |
|             }
 | |
|             return -1;
 | |
|         }
 | |
| 		//public static float GetNewSize(uint i)
 | |
| 		//{
 | |
| 		//    return ConvertToNewSize[i&63];
 | |
| 		//}
 | |
| 
 | |
| 		private static bool FontIsPropt(uint fontFace)
 | |
| 		{
 | |
| 			int f = (int)fontFace & 63;
 | |
| 			switch (f)
 | |
| 			{
 | |
| 				case PROPORTIONAL:
 | |
| 				case PROPT12:
 | |
| 				case PROPT10:
 | |
| 				case HVLPT12:
 | |
| 				case HVLPT10:
 | |
| 				case HVLPT8:
 | |
| 				case HVLPT14:
 | |
| 				case HVLPT18:
 | |
| 				case HVLPT25:
 | |
| 				case SANSERIF14:
 | |
| 				case SANSERIF17:
 | |
| 				case SANSERIF25:
 | |
| 				case TIMES11:
 | |
| 					return true;
 | |
| 				default:
 | |
| 					return false;
 | |
| 			}
 | |
| 		}
 | |
| 		public static float GetCPIs(uint i)
 | |
| 		{
 | |
| 			if (FontIsPropt(i))	return 12;
 | |
| 			uint j = i & 63;
 | |
| 			if (j > CPIS.Length - 1)
 | |
| 				return CPIS[0];
 | |
| 			return CPIS[j];
 | |
| 		}
 | |
| 		public static float GetCPISBadPICA12(uint i)
 | |
| 		{
 | |
| 			if (FontIsPropt(i)) return 12;
 | |
| 			uint j = i & 63;
 | |
| 			if (j > CPISBadPICA12.Length - 1)
 | |
| 				return CPISBadPICA12[0];
 | |
| 			return CPISBadPICA12[j];
 | |
| 		}
 | |
| 		public static float GetPrintPitch(uint i)
 | |
| 		{
 | |
| 			if (FontIsPropt(i)) return 12;
 | |
| 			return PrintPitch[i & 63];
 | |
| 		}
 | |
|         //public static XmlElement ConvertToXML(string oldstr)
 | |
|         //{
 | |
|         //    if (OldToNewStrings == null) InitializeDictionary();
 | |
|         //    XmlElement xml = new XmlElement();
 | |
|         //    xml.InnerXml = OldToNewStrings[oldstr];
 | |
|         //    return xml;
 | |
|         //}
 | |
|         private static void InitializeDictionary()
 | |
|         {
 | |
|             int i = 0;
 | |
|             foreach (string str in OldNames)
 | |
|                 OldToNewStrings.Add(str, NewXML[i]);
 | |
|         }
 | |
|     }
 | |
| }
 |