This commit is contained in:
Kathy Ruffing 2011-05-19 14:34:51 +00:00
parent f284d15352
commit 867a220e9d

View File

@ -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<string, string> 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();