using System; using System.Collections.Generic; using System.Text; using System.Xml; namespace CvtFont { // 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",/* this font is not used */ "LgUpMed16", "Propt10", "Lg1275Hp4Si", "HvlPt10", "HvlPt8", "HvlPt14", "SanSerif25", "EyeChart", "Times11", "SansCond", "BigScript" }; private static string[] NewXML = { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }; 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, 10, /* PROPT10 - NSP & TUEC - change from 0 to 10 */ //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 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]); } } }