You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
451 lines
12 KiB
451 lines
12 KiB
BEGIN {
|
|
options=ARGV[1]
|
|
ARGV[1]=""
|
|
gpdname=ARGV[2]
|
|
ARGV[2]=""
|
|
resname=ARGV[3]
|
|
ARGV[3]=""
|
|
|
|
InitFontMap();
|
|
InitDocOrder();
|
|
|
|
print "*%"
|
|
print "*% Copyright (c) 1997 - 2000 Microsoft Corporation"
|
|
print "*% All Rights Reserved."
|
|
print "*%"
|
|
}
|
|
/^\*GPDFileName/ {
|
|
print "*GPDFileName: \"" gpdname "\""
|
|
print "*CodePage: 1252"
|
|
next
|
|
}
|
|
/^\*ModelName/ {
|
|
gsub(/‹žƒZƒ‰/, "KYOCERA")
|
|
if (options ~ /H/)
|
|
gsub(/"$/, " (MPS)\"")
|
|
}
|
|
/^\*ResourceDLL/ {
|
|
print "*ResourceDLL: \"" resname "\""
|
|
print "*Feature: RESDLL"
|
|
print "{"
|
|
print " *Option: KyoRes"
|
|
print " {"
|
|
print " *Name: \"kyores.dll\""
|
|
print " }"
|
|
print "}"
|
|
next
|
|
}
|
|
/^\*DefaultFont/ || /^\*DeviceFonts/ || /\*Fonts/ || /^\+[ \t]*[0-9]/ {
|
|
DoMapFont($0)
|
|
next
|
|
}
|
|
/^\*Feature/ {
|
|
feature=$2
|
|
if (feature ~ /(MediaType|PrintDensity)/)
|
|
SkipBlock = 1
|
|
else if (feature ~ /PrintQuality/ && options ~ /M/) {
|
|
SkipBlock = 1
|
|
print "*Feature: PrintQuality"
|
|
print "{"
|
|
print " *rcNameID: =TEXT_QUALITY_DISPLAY"
|
|
print " *DefaultOption: Option2"
|
|
print " *Option: Option1"
|
|
print " {"
|
|
print " *rcNameID: 355"
|
|
print " *Command: CmdSelect"
|
|
print " {"
|
|
print " *Order: DOC_SETUP.10"
|
|
print " *Cmd: \"!R!sir0;exit;\""
|
|
print " }"
|
|
print " }"
|
|
print " *Option: Option2"
|
|
print " {"
|
|
print " *rcNameID: 356"
|
|
print " *Command: CmdSelect"
|
|
print " {"
|
|
print " *Order: DOC_SETUP.10"
|
|
print " *Cmd: \"!R!sir2;exit;\""
|
|
print " }"
|
|
print " }"
|
|
print "}"
|
|
}
|
|
}
|
|
/\*Command/ {
|
|
command=$2
|
|
if (command ~ /CmdStartDoc/)
|
|
SkipBlock = 1
|
|
else if (command ~ /CmdStartPage/) {
|
|
print "*Command: CmdStartDoc"
|
|
print "{"
|
|
print " *Order: DOC_SETUP.1"
|
|
print " *Cmd: \"!R!;sem6;FFTO0;exit;<1B>%%-12345X@PJL<0D0A>\""
|
|
print "}"
|
|
} else if (command ~ /(CmdEndJob|CmdCopies)/) {
|
|
if (options ~ /H/) {
|
|
if (command ~ /CmdEndJob/) {
|
|
print "*Command: " command
|
|
print "{"
|
|
print " *Order: DOC_FINISH.1"
|
|
print " *Cmd: \"<1B>E<1B>%%-12345X!R!JOBT;FFTO1;res;exit;\""
|
|
print "}"
|
|
} else {
|
|
print "*Command: " command
|
|
print "{"
|
|
print " *Order: DOC_SETUP.7"
|
|
print " *Cmd: %d{NumOfCopies}\",\""
|
|
print "}"
|
|
}
|
|
} else if (options ~ /R/) {
|
|
print "*switch: RamDisk"
|
|
print "{"
|
|
print " *case: NotInstalled"
|
|
print " {"
|
|
print " *Command: " command
|
|
print " {"
|
|
if (command ~ /CmdEndJob/) {
|
|
print " *Order: DOC_FINISH.1"
|
|
print " *Cmd: \"<1B>E<1B>%%-12345X!R!FFTO1;res;exit;\""
|
|
} else {
|
|
print " *Order: DOC_SETUP.7"
|
|
print " *Cmd: \"<1B>&l\" %d{NumOfCopies}\"X\""
|
|
}
|
|
print " }"
|
|
print " }"
|
|
print " *case: Installed"
|
|
print " {"
|
|
print " *Command: " command
|
|
print " {"
|
|
if (command ~ /CmdEndJob/) {
|
|
print " *Order: DOC_FINISH.1"
|
|
print " *Cmd: \"<1B>E<1B>%%-12345X!R!JOBT;FFTO1;res;exit;\""
|
|
} else {
|
|
print " *Order: DOC_SETUP.7"
|
|
print " *Cmd: %d{NumOfCopies}\",0,0,0,%\"%\",%\"%\",%\"%\";EXIT;\""
|
|
}
|
|
print " }"
|
|
print " }"
|
|
print "}"
|
|
} else {
|
|
print "*Command: " command
|
|
print "{"
|
|
if (command ~ /CmdEndJob/) {
|
|
print " *Order: DOC_FINISH.1"
|
|
print " *Cmd: \"<1B>E<1B>%%-12345X!R!FFTO1;res;exit;\""
|
|
} else {
|
|
print " *Order: DOC_SETUP.7"
|
|
print " *Cmd: \"<1B>&l\" %d{NumOfCopies}\"X\""
|
|
}
|
|
print "}"
|
|
}
|
|
SkipBlock = 1
|
|
}
|
|
}
|
|
/\*Order.*DOC_SETUP/ {
|
|
if (command ~ /CmdSelect/)
|
|
i = feature
|
|
else
|
|
i = command
|
|
if (i in DocOrder)
|
|
gsub(/[0-9]*$/, DocOrder[i])
|
|
else
|
|
$0 = $0 "???"
|
|
}
|
|
/^}$/ {
|
|
if (SkipBlock) {
|
|
SkipBlock = 0
|
|
feature=""
|
|
next
|
|
} else if (feature ~ /Resolution/) {
|
|
print "*% *Option: Option3"
|
|
print "*% {"
|
|
print "*% *Name: \"150 x 150 dots per inch\""
|
|
print "*% *DPI: PAIR(150, 150)"
|
|
print "*% *TextDPI: PAIR(300, 300)"
|
|
print "*% *MinStripBlankPixels: 32"
|
|
print "*% EXTERN_GLOBAL: *StripBlanks: LIST(ENCLOSED,TRAILING)"
|
|
print "*% *SpotDiameter: 100"
|
|
print "*% *Command: CmdBeginRaster { *Cmd : \"<1B>*r1A\" }"
|
|
print "*% *Command: CmdEndRaster { *Cmd : \"<1B>*rB\" }"
|
|
print "*% *Command: CmdSendBlockData { *Cmd : \"<1B>*b\" %d{NumOfDataBytes}\"W\" }"
|
|
print "*% *Command: CmdSelect"
|
|
print "*% {"
|
|
print "*% *Order: DOC_SETUP.5"
|
|
print "*% *Cmd: \"@PJL SET RESOLUTION=300<0D0A>@PJL ENTER LANGUAGE = PCL<0D0A1B>E<1B>*t150R<1B>&u\""
|
|
print "*% + \"600D<1B>*r0F\""
|
|
print "*% }"
|
|
print "*% }"
|
|
print "*% *Option: Option4"
|
|
print "*% {"
|
|
print "*% *Name: \"75 x 75 dots per inch\""
|
|
print "*% *DPI: PAIR(75, 75)"
|
|
print "*% *TextDPI: PAIR(300, 300)"
|
|
print "*% EXTERN_GLOBAL: *StripBlanks: LIST(TRAILING)"
|
|
print "*% *SpotDiameter: 100"
|
|
print "*% *Command: CmdBeginRaster { *Cmd : \"<1B>*r1A\" }"
|
|
print "*% *Command: CmdEndRaster { *Cmd : \"<1B>*rB\" }"
|
|
print "*% *Command: CmdSendBlockData { *Cmd : \"<1B>*b\" %d{NumOfDataBytes}\"W\" }"
|
|
print "*% *Command: CmdSelect"
|
|
print "*% {"
|
|
print "*% *Order: DOC_SETUP.5"
|
|
print "*% *Cmd: \"@PJL SET RESOLUTION=300<0D0A>@PJL ENTER LANGUAGE = PCL<0D0A1B>E<1B>*t75R<1B>&u6\""
|
|
print "*% + \"00D<1B>*r0F\""
|
|
print "*% }"
|
|
print "*% }"
|
|
}
|
|
feature=""
|
|
}
|
|
/\*rcNameID/ {
|
|
if (feature ~ /PaperSize/ && $2 !~ /PAPER_SIZE_DISPLAY/) {
|
|
print
|
|
gsub(/\*rcNameID.*$/, "*PageProtectMem: 2048")
|
|
print
|
|
next
|
|
}
|
|
}
|
|
{
|
|
if (SkipBlock)
|
|
next
|
|
print
|
|
}
|
|
END {
|
|
file="newfea.txt"
|
|
while (getline < file > 0)
|
|
print
|
|
close(file)
|
|
|
|
if (options ~ /M/) {
|
|
file = "mtype.txt"
|
|
while (getline < file > 0)
|
|
print
|
|
close(file)
|
|
}
|
|
|
|
if (options ~ /H/) {
|
|
file = "hdunit.txt"
|
|
while (getline < file > 0)
|
|
print
|
|
close(file)
|
|
} else if (options ~ /R/) {
|
|
file = "ramdisk.txt"
|
|
while (getline < file > 0)
|
|
print
|
|
close(file)
|
|
}
|
|
|
|
file = "ttfs.txt"
|
|
while (getline < file > 0)
|
|
print
|
|
close(file)
|
|
}
|
|
|
|
#
|
|
# functions
|
|
#
|
|
|
|
function DoMapFont(str, n, i, v, c, l, s)
|
|
{
|
|
n = length(str)
|
|
l = 0
|
|
v = ""
|
|
for (i = 1; i <= n; i++) {
|
|
c = substr(str, i, 1)
|
|
if (c >= "0" && c <= "9") {
|
|
v = (v * 10) + (c - "0")
|
|
continue
|
|
}
|
|
if (v) {
|
|
if (v in FontMap)
|
|
s = FontMap[v] c
|
|
else
|
|
s = "??" v c
|
|
v = ""
|
|
} else
|
|
s = c
|
|
if (l + length(s) >= 78) {
|
|
printf("\n+ ")
|
|
l = 4
|
|
}
|
|
printf("%s", s)
|
|
l += length(s)
|
|
}
|
|
if (v) {
|
|
if (v in FontMap)
|
|
s = FontMap[v]
|
|
else
|
|
s = "??" v
|
|
if (l + length(s) >= 78)
|
|
printf("\n+ ")
|
|
printf("%s", s)
|
|
}
|
|
if (l > 0)
|
|
print ""
|
|
}
|
|
|
|
function InitFontMap()
|
|
{
|
|
FontMap[1] = "RESDLL.KyoRes.92"
|
|
FontMap[2] = "RESDLL.KyoRes.90"
|
|
FontMap[3] = "RESDLL.KyoRes.86"
|
|
FontMap[4] = "RESDLL.KyoRes.91"
|
|
FontMap[5] = "RESDLL.KyoRes.87"
|
|
FontMap[6] = "RESDLL.KyoRes.88"
|
|
FontMap[7] = "RESDLL.KyoRes.85"
|
|
FontMap[8] = "RESDLL.KyoRes.89"
|
|
FontMap[9] = "RESDLL.KyoRes.96"
|
|
FontMap[10] = "RESDLL.KyoRes.94"
|
|
FontMap[11] = "RESDLL.KyoRes.93"
|
|
FontMap[12] = "RESDLL.KyoRes.95"
|
|
FontMap[13] = "RESDLL.KyoRes.102"
|
|
FontMap[14] = "RESDLL.KyoRes.107"
|
|
FontMap[15] = "RESDLL.KyoRes.108"
|
|
FontMap[16] = "RESDLL.KyoRes.109"
|
|
FontMap[17] = "RESDLL.KyoRes.110"
|
|
FontMap[18] = "RESDLL.KyoRes.111"
|
|
FontMap[19] = "RESDLL.KyoRes.112"
|
|
FontMap[20] = "RESDLL.KyoRes.113"
|
|
FontMap[21] = "RESDLL.KyoRes.118"
|
|
FontMap[22] = "RESDLL.KyoRes.119"
|
|
FontMap[23] = "RESDLL.KyoRes.120"
|
|
FontMap[24] = "RESDLL.KyoRes.121"
|
|
FontMap[25] = "RESDLL.KyoRes.122"
|
|
FontMap[26] = "RESDLL.KyoRes.123"
|
|
FontMap[27] = "RESDLL.KyoRes.124"
|
|
FontMap[28] = "RESDLL.KyoRes.127"
|
|
FontMap[29] = "RESDLL.KyoRes.129"
|
|
FontMap[30] = "RESDLL.KyoRes.130"
|
|
FontMap[31] = "RESDLL.KyoRes.131"
|
|
FontMap[32] = "RESDLL.KyoRes.132"
|
|
FontMap[33] = "RESDLL.KyoRes.133"
|
|
FontMap[34] = "RESDLL.KyoRes.134"
|
|
FontMap[35] = "RESDLL.KyoRes.135"
|
|
FontMap[36] = "RESDLL.KyoRes.136"
|
|
FontMap[37] = "RESDLL.KyoRes.137"
|
|
FontMap[38] = "RESDLL.KyoRes.138"
|
|
FontMap[39] = "RESDLL.KyoRes.139"
|
|
FontMap[40] = "RESDLL.KyoRes.140"
|
|
FontMap[41] = "RESDLL.KyoRes.141"
|
|
FontMap[42] = "RESDLL.KyoRes.142"
|
|
FontMap[43] = "1" # SWISSR
|
|
FontMap[44] = "2" # SWISSI
|
|
FontMap[45] = "3" # SWISSB
|
|
FontMap[46] = "4" # SWISSJ
|
|
FontMap[47] = "RESDLL.KyoRes.143"
|
|
FontMap[48] = "RESDLL.KyoRes.144"
|
|
FontMap[49] = "RESDLL.KyoRes.145"
|
|
FontMap[50] = "RESDLL.KyoRes.146"
|
|
FontMap[51] = "RESDLL.KyoRes.147"
|
|
FontMap[52] = "RESDLL.KyoRes.126"
|
|
FontMap[53] = "5" # SYMSET
|
|
FontMap[54] = "RESDLL.KyoRes.114"
|
|
FontMap[55] = "RESDLL.KyoRes.115"
|
|
FontMap[56] = "RESDLL.KyoRes.116"
|
|
FontMap[57] = "RESDLL.KyoRes.117"
|
|
FontMap[58] = "RESDLL.KyoRes.103"
|
|
FontMap[59] = "RESDLL.KyoRes.104"
|
|
FontMap[60] = "RESDLL.KyoRes.105"
|
|
FontMap[61] = "RESDLL.KyoRes.106"
|
|
FontMap[62] = "RESDLL.KyoRes.125"
|
|
FontMap[63] = "RESDLL.KyoRes.47"
|
|
FontMap[64] = "RESDLL.KyoRes.48"
|
|
FontMap[65] = "RESDLL.KyoRes.49"
|
|
FontMap[66] = "RESDLL.KyoRes.50"
|
|
FontMap[67] = "RESDLL.KyoRes.55"
|
|
FontMap[68] = "RESDLL.KyoRes.56"
|
|
FontMap[69] = "RESDLL.KyoRes.57"
|
|
FontMap[70] = "RESDLL.KyoRes.58"
|
|
FontMap[71] = "RESDLL.KyoRes.64"
|
|
FontMap[72] = "RESDLL.KyoRes.65"
|
|
FontMap[73] = "RESDLL.KyoRes.66"
|
|
FontMap[74] = "RESDLL.KyoRes.67"
|
|
FontMap[75] = "RESDLL.KyoRes.1"
|
|
FontMap[76] = "RESDLL.KyoRes.2"
|
|
FontMap[77] = "RESDLL.KyoRes.3"
|
|
FontMap[78] = "RESDLL.KyoRes.4"
|
|
FontMap[79] = "RESDLL.KyoRes.5"
|
|
FontMap[80] = "RESDLL.KyoRes.6"
|
|
FontMap[81] = "RESDLL.KyoRes.7"
|
|
FontMap[82] = "RESDLL.KyoRes.8"
|
|
FontMap[83] = "RESDLL.KyoRes.9"
|
|
FontMap[84] = "RESDLL.KyoRes.10"
|
|
FontMap[85] = "RESDLL.KyoRes.11"
|
|
FontMap[86] = "RESDLL.KyoRes.12"
|
|
FontMap[87] = "RESDLL.KyoRes.13"
|
|
FontMap[88] = "RESDLL.KyoRes.14"
|
|
FontMap[89] = "RESDLL.KyoRes.15"
|
|
FontMap[90] = "RESDLL.KyoRes.16"
|
|
FontMap[91] = "RESDLL.KyoRes.17"
|
|
FontMap[92] = "RESDLL.KyoRes.18"
|
|
FontMap[93] = "RESDLL.KyoRes.19"
|
|
FontMap[94] = "RESDLL.KyoRes.20"
|
|
FontMap[95] = "RESDLL.KyoRes.21"
|
|
FontMap[96] = "RESDLL.KyoRes.22"
|
|
FontMap[97] = "RESDLL.KyoRes.23"
|
|
FontMap[98] = "RESDLL.KyoRes.24"
|
|
FontMap[99] = "RESDLL.KyoRes.25"
|
|
FontMap[100] = "RESDLL.KyoRes.26"
|
|
FontMap[101] = "RESDLL.KyoRes.27"
|
|
FontMap[102] = "RESDLL.KyoRes.28"
|
|
FontMap[103] = "RESDLL.KyoRes.29"
|
|
FontMap[104] = "RESDLL.KyoRes.30"
|
|
FontMap[105] = "RESDLL.KyoRes.31"
|
|
FontMap[106] = "RESDLL.KyoRes.32"
|
|
FontMap[107] = "RESDLL.KyoRes.33"
|
|
FontMap[108] = "RESDLL.KyoRes.34"
|
|
FontMap[109] = "RESDLL.KyoRes.35"
|
|
FontMap[110] = "RESDLL.KyoRes.36"
|
|
FontMap[111] = "RESDLL.KyoRes.37"
|
|
FontMap[112] = "RESDLL.KyoRes.38"
|
|
FontMap[113] = "RESDLL.KyoRes.39"
|
|
FontMap[114] = "RESDLL.KyoRes.40"
|
|
FontMap[115] = "RESDLL.KyoRes.41"
|
|
FontMap[116] = "RESDLL.KyoRes.42"
|
|
FontMap[117] = "RESDLL.KyoRes.43"
|
|
FontMap[118] = "RESDLL.KyoRes.44"
|
|
FontMap[119] = "RESDLL.KyoRes.45"
|
|
FontMap[120] = "RESDLL.KyoRes.46"
|
|
FontMap[121] = "21" # DFMINCH
|
|
FontMap[122] = "22" # DFMINCHB
|
|
FontMap[123] = "23" # DFMINCHI
|
|
FontMap[124] = "24" # DFMINCHZ
|
|
FontMap[125] = "25" # DFMINCV
|
|
FontMap[126] = "26" # DFMINCVB
|
|
FontMap[127] = "27" # DFMINCVI
|
|
FontMap[128] = "28" # DFMINCVZ
|
|
FontMap[129] = "29" # DFGOTH
|
|
FontMap[130] = "30" # DFGOTHB
|
|
FontMap[131] = "31" # DFGOTHI
|
|
FontMap[132] = "32" # DFGOTHZ
|
|
FontMap[133] = "33" # DFGOTV
|
|
FontMap[134] = "34" # DFGOTVB
|
|
FontMap[135] = "35" # DFGOTVI
|
|
FontMap[136] = "36" # DFGOTVZ
|
|
FontMap[137] = "37" # MSMINCH
|
|
FontMap[138] = "38" # MSMINCHB
|
|
FontMap[139] = "39" # MSMINCHI
|
|
FontMap[140] = "40" # MSMINCHZ
|
|
FontMap[141] = "41" # MSMINCV
|
|
FontMap[142] = "42" # MSMINCVB
|
|
FontMap[143] = "43" # MSMINCVI
|
|
FontMap[144] = "44" # MSMINCVZ
|
|
FontMap[145] = "45" # MSGOTH
|
|
FontMap[146] = "46" # MSGOTHB
|
|
FontMap[147] = "47" # MSGOTHI
|
|
FontMap[148] = "48" # MSGOTHZ
|
|
FontMap[149] = "49" # MSGOTV
|
|
FontMap[150] = "50" # MSGOTVB
|
|
FontMap[151] = "51" # MSGOTVI
|
|
FontMap[152] = "52" # MSGOTVZ
|
|
}
|
|
|
|
function InitDocOrder()
|
|
{
|
|
DocOrder["CmdStartDoc"] = 1
|
|
DocOrder["Resolution"] = 5
|
|
DocOrder["PrintQuality"] = 10
|
|
DocOrder["Orientation"] = 11
|
|
DocOrder["Duplex"] = 12
|
|
DocOrder["InputBin"] = 14
|
|
DocOrder["OutputBin"] = 15
|
|
DocOrder["PaperSize"] = 16
|
|
}
|
|
|