diff --git a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs b/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs index c79b907a..4d6018d4 100644 --- a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs +++ b/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs @@ -9,6 +9,35 @@ 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", @@ -129,8 +158,72 @@ namespace CvtFont 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 + 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 + 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 + 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) { @@ -158,6 +251,44 @@ namespace CvtFont } 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; + return CPIS[i & 63]; + } + 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();