347 lines
9.8 KiB
C#
347 lines
9.8 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",/* this font is not used */
|
|
"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=\"10\"/>",
|
|
"<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,
|
|
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<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]);
|
|
}
|
|
}
|
|
}
|