Browse Source

Merge remote-tracking branch 'origin/zyy' into zhangxueyang

tags/录制修改前
zhangxueyang 4 years ago
parent
commit
2ed6ad650c
100 changed files with 15509 additions and 0 deletions
  1. 33
    0
      XHWK.WKTool/LatticeXML/print_license.xml
  2. 33
    0
      XHWK.WKTool/LatticeXML/print_license_A4_200.xml
  3. 1
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/EndOfTask.ps
  4. 32
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIcidfmap
  5. 14
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIconfig
  6. 14
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIconfig-FCO
  7. 33
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIfontmap
  8. 107
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PCLPS2
  9. 198
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PCLPS3
  10. 159
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PS3
  11. 4
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap
  12. 168
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.ATB
  13. 185
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.ATM
  14. 354
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.GS
  15. 214
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.OS2
  16. 163
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.OSF
  17. 405
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.SGI
  18. 486
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.Sol
  19. 146
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.Ult
  20. 424
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.VMS
  21. 14
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Info-macos.plist
  22. 43
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/PDFA_def.ps
  23. 51
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/PDFX_def.ps
  24. 100
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/acctest.ps
  25. 357
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/addxchar.ps
  26. 151
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/afmdiff.awk
  27. 73
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/align.ps
  28. 13
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops
  29. 5
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.bat
  30. 7
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.cmd
  31. 795
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.ps
  32. 17
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8.rpd
  33. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8gc12f.upp
  34. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8hg12f.upp
  35. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8oh06n.upp
  36. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8pa06n.upp
  37. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8pp12f.upp
  38. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8ts06n.upp
  39. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a0.upp
  40. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a1.upp
  41. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a2.upp
  42. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a3.upp
  43. 45
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a4.upp
  44. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a5.upp
  45. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a6.upp
  46. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a7.upp
  47. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a8.upp
  48. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b1.upp
  49. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b2.upp
  50. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b3.upp
  51. 45
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b4.upp
  52. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b6.upp
  53. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b7.upp
  54. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b8.upp
  55. 56
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/caption.ps
  56. 74
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cat.ps
  57. 404
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cbjc600.ppd
  58. 389
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cbjc800.ppd
  59. 48
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj550.upp
  60. 52
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj690.upp
  61. 54
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj690ec.upp
  62. 160
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cid2code.ps
  63. 43
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cidfmap
  64. 28
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cidfmap.bak
  65. 15
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/decrypt.ps
  66. 47
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dnj750c.upp
  67. 59
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dnj750m.upp
  68. 220
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/docie.ps
  69. 30
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint
  70. 22
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint.bat
  71. 756
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint.ps
  72. 47
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dvipdf
  73. 29
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps
  74. 26
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps.bat
  75. 36
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps.cmd
  76. 206
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/fixmswrd.pl
  77. 13
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c
  78. 5
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.bat
  79. 7
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.cmd
  80. 675
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.ps
  81. 603
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2pcl.ps
  82. 44
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/ghostpdf.inf
  83. 522
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/ghostpdf.ppd
  84. 1069
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_agl.ps
  85. 331
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_btokn.ps
  86. 47
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_ce_e.ps
  87. 73
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cet.ps
  88. 856
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cff.ps
  89. 452
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidcm.ps
  90. 224
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_ciddc.ps
  91. 129
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidfm.ps
  92. 412
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidfn.ps
  93. 161
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidtt.ps
  94. 549
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cmap.ps
  95. 180
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cmdl.ps
  96. 190
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cspace.ps
  97. 114
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_css_e.ps
  98. 59
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_dbt_e.ps
  99. 224
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_diskf.ps
  100. 0
    0
      XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_diskn.ps

+ 33
- 0
XHWK.WKTool/LatticeXML/print_license.xml View File

@@ -0,0 +1,33 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!-- Generated by Anoto XML Writer 1.0 -->
3
+<licensecontainer version="2.0">
4
+  <license level="0" name="Segment 1536 Root A4" owner="Anoto" info="Copyright (c) 2009 Anoto AB, Sweden" type="Common B2B" afdguid="0" parentid="-1">
5
+    <page width="8512" height="8512"/>
6
+    <time expire="21091107" creation="20091107"/>
7
+    <user id="-1"/>
8
+    <pattern category="interactive">
9
+      <pageaddress start="1536.0.0.0" stop="1536.7883.72.107" pagesleft="9476568"/>
10
+    </pattern>
11
+    <permissions nbrof="3">
12
+      <permission id="0" value="1" name="sublicense"/>
13
+      <permission id="1" value="1" name="deallocate"/>
14
+      <permission id="2" value="1" name="print"/>
15
+    </permissions>
16
+    <signature value="d0c8511c1a3d64b0d4948a9c13d2e81612de4101a682082c9e37ebfb5d049c295684691066435815f6e1f3d727f180bf9229e9c9e66597d34c4cf2b0809ad1dfca0d5aa99030066eab6187baf84bc7d297c1ee613a005cb5c31494689fe4570a6f97ca2ba6fc19a61ea162ec2e816901104a095b49984b3b78486df1af6dc08d76c4cc7c6ead0d58c5b5df6e7989a296e7bc8eb8b30159b9838a332049af655044945747c3f0552fde5919f15f3440369671891d49b82068ce8c120ccd1918c84951fccfde974d6e2470cf82c30d76d0627f3731ff1a193467b9faaf8c538363164cc1fae95961ae8dfeced19f491bd70137b926986799c105a1668ae66fb52f"/>
17
+  </license>
18
+  <license level="4" name="mlms_note_class_line_1" owner="TStudy For T Study" info="" type="" afdguid="0" parentid="1536.688.29.105_3">
19
+    <page width="8512" height="8512"/>
20
+    <time expire="21090606" creation="20200902"/>
21
+    <user id="1"/>
22
+    <pattern category="consumer">
23
+      <pageaddress start="1536.688.35.70" stop="1536.688.37.53" pagesleft="200"/>
24
+    </pattern>
25
+    <permissions nbrof="3">
26
+      <permission id="0" value="1" name="sublicense"/>
27
+      <permission id="1" value="0" name="deallocate"/>
28
+      <permission id="2" value="1" name="print"/>
29
+    </permissions>
30
+    <signature value="ce5bc9509f7dd19c548ad8de943e9af733ef31d39c7d8451d636a609eaa3ba5a2446bbd228e3f3a591f1f2e82ba36962c6516229144857167da28e027ed8ed3d3adf284833472eace8c128e3bc4a6ec0cd12bf45f36db81b7bfc596585b0ae2a33dcf0bd7fec6795f6d4d11a1dd64ae58c8aa9db1bc76080bd9c643eb99cac48d120e6ecbf8fe0cd8fada19a317d58506e223c498c7b823bec5620733638580f584cb5beb8638b5013a0d78034120d65fbffb1ce4d1745c146d93fc509b11b895bc79fe7d670fe5a0be1fca38a478d6dd83fa4549c88e45d6ac01128c419a7f3562e9386a08ce720c6e9f1a1925fee476ff078c321bbfb81b775ce0d89cf4c8f"/>
31
+    <publickey exponent="e438ccff" modulus="f52cc2508730205da270e18a524d6ac52f1757c00a6ae29b89188f458cd109afa6054e6b6415b50b4ca4f433ac9c848c7449a0cc7c25d4754763c4e54b32fc5e65ba4b290e8fd0a005de01264597678ca68b66e8b1eb4668a5ad426877f6fbdd08357873ece61bee659329097d3d8e4d96619e00b46c9fbf4141bd71db2407b06ba5848b82e7c7abc48106ea377bfaed1021d5ca3aed5d6eafeaae390b1b51960e17e92584c164bde6b0788d85ef6465e3182853c190bfa6906168b73e948a51abf033c020aae0a67983dc9fca59c8449003751a8ee361d19760b9956e6b3191f847834484b5c08b65c9ff125f1692acd2b7d1f106d4242883260e3522555f87"/>
32
+  </license>
33
+</licensecontainer>

+ 33
- 0
XHWK.WKTool/LatticeXML/print_license_A4_200.xml View File

@@ -0,0 +1,33 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!-- Generated by Anoto XML Writer 1.0 -->
3
+<licensecontainer version="2.0">
4
+  <license level="0" name="Segment 1536 Root A4" owner="Anoto" info="Copyright (c) 2009 Anoto AB, Sweden" type="Common B2B" afdguid="0" parentid="-1">
5
+    <page width="8512" height="8512"/>
6
+    <time expire="21091107" creation="20091107"/>
7
+    <user id="-1"/>
8
+    <pattern category="interactive">
9
+      <pageaddress start="1536.0.0.0" stop="1536.7883.72.107" pagesleft="9476568"/>
10
+    </pattern>
11
+    <permissions nbrof="3">
12
+      <permission id="0" value="1" name="sublicense"/>
13
+      <permission id="1" value="1" name="deallocate"/>
14
+      <permission id="2" value="1" name="print"/>
15
+    </permissions>
16
+    <signature value="d0c8511c1a3d64b0d4948a9c13d2e81612de4101a682082c9e37ebfb5d049c295684691066435815f6e1f3d727f180bf9229e9c9e66597d34c4cf2b0809ad1dfca0d5aa99030066eab6187baf84bc7d297c1ee613a005cb5c31494689fe4570a6f97ca2ba6fc19a61ea162ec2e816901104a095b49984b3b78486df1af6dc08d76c4cc7c6ead0d58c5b5df6e7989a296e7bc8eb8b30159b9838a332049af655044945747c3f0552fde5919f15f3440369671891d49b82068ce8c120ccd1918c84951fccfde974d6e2470cf82c30d76d0627f3731ff1a193467b9faaf8c538363164cc1fae95961ae8dfeced19f491bd70137b926986799c105a1668ae66fb52f"/>
17
+  </license>
18
+  <license level="4" name="mlms_note_class_line_1" owner="TStudy For T Study" info="" type="" afdguid="0" parentid="1536.688.29.105_3">
19
+    <page width="8512" height="8512"/>
20
+    <time expire="21090606" creation="20200902"/>
21
+    <user id="1"/>
22
+    <pattern category="consumer">
23
+      <pageaddress start="1536.688.35.70" stop="1536.688.37.53" pagesleft="200"/>
24
+    </pattern>
25
+    <permissions nbrof="3">
26
+      <permission id="0" value="1" name="sublicense"/>
27
+      <permission id="1" value="0" name="deallocate"/>
28
+      <permission id="2" value="1" name="print"/>
29
+    </permissions>
30
+    <signature value="ce5bc9509f7dd19c548ad8de943e9af733ef31d39c7d8451d636a609eaa3ba5a2446bbd228e3f3a591f1f2e82ba36962c6516229144857167da28e027ed8ed3d3adf284833472eace8c128e3bc4a6ec0cd12bf45f36db81b7bfc596585b0ae2a33dcf0bd7fec6795f6d4d11a1dd64ae58c8aa9db1bc76080bd9c643eb99cac48d120e6ecbf8fe0cd8fada19a317d58506e223c498c7b823bec5620733638580f584cb5beb8638b5013a0d78034120d65fbffb1ce4d1745c146d93fc509b11b895bc79fe7d670fe5a0be1fca38a478d6dd83fa4549c88e45d6ac01128c419a7f3562e9386a08ce720c6e9f1a1925fee476ff078c321bbfb81b775ce0d89cf4c8f"/>
31
+    <publickey exponent="e438ccff" modulus="f52cc2508730205da270e18a524d6ac52f1757c00a6ae29b89188f458cd109afa6054e6b6415b50b4ca4f433ac9c848c7449a0cc7c25d4754763c4e54b32fc5e65ba4b290e8fd0a005de01264597678ca68b66e8b1eb4668a5ad426877f6fbdd08357873ece61bee659329097d3d8e4d96619e00b46c9fbf4141bd71db2407b06ba5848b82e7c7abc48106ea377bfaed1021d5ca3aed5d6eafeaae390b1b51960e17e92584c164bde6b0788d85ef6465e3182853c190bfa6906168b73e948a51abf033c020aae0a67983dc9fca59c8449003751a8ee361d19760b9956e6b3191f847834484b5c08b65c9ff125f1692acd2b7d1f106d4242883260e3522555f87"/>
32
+  </license>
33
+</licensecontainer>

+ 1
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/EndOfTask.ps View File

@@ -0,0 +1 @@
1
+

+ 32
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIcidfmap View File

@@ -0,0 +1,32 @@
1
+%!
2
+% $Id: FAPIcidfmap 6826 2006-05-31 15:29:52Z leonardo $
3
+% This is a sample map file for FAPI CID fonts.
4
+
5
+%
6
+% The map is a set of records like this :
7
+%
8
+%  /CIDfont_name options_dict ;
9
+%
10
+% where options_dict is a dictionary with the following entries :
11
+%
12
+% Key         Type      Description  
13
+% Path        string    Absolute path to font file, or relative path to font file from
14
+%                       the GS_EXTFONTPATH value.  
15
+% CIDFontType interger  PostScript type for this CID font. Only 0 is currently allowed.
16
+%                       Note that this is unrelated to the real type of the font file -
17
+%                       the bridge will perform format conversion.
18
+% FAPI        name      Name of the renderer to be used with the font. Only /UFST is now allowed.
19
+% SubfontId   integer   (optional) Index of the font in font collection, such as FCO or TTC.
20
+%                       It is being ignored if /Path doesn't specify a collection.
21
+%                       Default value is 0.
22
+% CSI         array     Must have strongly 2 elements.
23
+%                       The first element of the array specifies Ordering of CIDSystemInfo.
24
+%                       The second element specifies Supplement of CIDSystemInfo.
25
+%
26
+% Use regular Postscript syntax.
27
+%
28
+% Examples :
29
+%
30
+%  /Ryumin-Medium     << /Path (msgothic.ttc) /CIDFontType 0 /FAPI /UFST /CSI [(Japan1) 2] >> ;
31
+%  /HeiseiKakuGo-W5   << /Path (F:/WIN2000/Fonts/BATANG.TTC) /CIDFontType 0 /FAPI /UFST /CSI [(Japan1) 2] >> ;
32
+

+ 14
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIconfig View File

@@ -0,0 +1,14 @@
1
+%!
2
+% $Id: FAPIconfig 6870 2006-06-20 16:31:15Z leonardo $
3
+% This is configuration file for FAPI client.
4
+
5
+/FontPath             (/Fonts)     % A default directory for FAPI-handled font files path in FAPIfontmap.
6
+/CIDFontPath          (/CIDFonts)  % A default directory for FAPI-handled CID font files path in FAPIcidfmap.
7
+/HookDiskFonts        [1 2 9 11 42]  % FontType values for disk PS fonts to be redirected to FAPI.
8
+/HookEmbeddedFonts    [1 2 9 11 42]  % FontType values for embedded PS fonts to be redirected to FAPI.
9
+
10
+% Values allowed for HookDiskFonts and HookEmbeddedFonts are 1, 2, 9, 11, 42.
11
+% "Disk fonts" are fonts being installed to Ghostscript with 'lib/Fontmap' or with GS_FONTPATH,
12
+% and CID font resource files.
13
+% "Embedded fonts" are fonts and CID fonts being embedded into a document.
14
+

+ 14
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIconfig-FCO View File

@@ -0,0 +1,14 @@
1
+%!
2
+% $Id: FAPIconfig-FCO 6998 2006-08-18 04:42:11Z ray $
3
+% This is configuration file for FAPI client.
4
+
5
+/FontPath             () % A default directory for FAPI-handled font files path in FAPIfontmap.
6
+/CIDFontPath          () % A default directory for FAPI-handled CID font files path in FAPIcidfmap.
7
+/HookDiskFonts        []  % FontType values for disk PS fonts to be redirected to FAPI.
8
+/HookEmbeddedFonts    []  % FontType values for embedded PS fonts to be redirected to FAPI.
9
+
10
+% Values allowed for HookDiskFonts and HookEmbeddedFonts are 1, 2, 9, 11, 42.
11
+% "Disk fonts" are fonts being installed to Ghostscript with 'lib/Fontmap' or with GS_FONTPATH,
12
+% and CID font resource files.
13
+% "Embedded fonts" are fonts and CID fonts being embedded into a document.
14
+

+ 33
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FAPIfontmap View File

@@ -0,0 +1,33 @@
1
+%!
2
+% $Id: FAPIfontmap 6870 2006-06-20 16:31:15Z leonardo $
3
+% This is a sample map file for FAPI fonts.
4
+
5
+%
6
+% The map is a set of records like this :
7
+%
8
+%  /font_name options_dict ;
9
+%
10
+% where options_dict is a dictionary with the following entries :
11
+%
12
+% Key       Type      Description  
13
+% Path      string    Absolute path to font file, or relative path to font file from
14
+%                     the GS_EXTFONTPATH value.  
15
+% FontType  interger  PostScript type for this font. Only 1 and 42 are currently allowed.
16
+%                     Note that this is unrelated to the real type of the font file -
17
+%                     the bridge will perform format conversion.
18
+% FAPI      name      Name of the renderer to be used with the font. Only /AgfaUFST is now allowed.
19
+% SubfontId integer   (optional) Index of the font in font collection, such as FCO or TTC.
20
+%                     It is being ignored if /Path doesn't specify a collection.
21
+%                     Default value is 0.
22
+% Decoding  name      (optional) The name of a Decoding resource to be used with the font.
23
+%                     If specified, "xlatmap" doesn't work for this font.
24
+%
25
+% Use regular Postscript syntax.
26
+%
27
+% Examples :
28
+%
29
+%  /ArialTT     << /Path (arial.ttf) /FontType 1 /FAPI /UFST >> ;
30
+%  /CourierTT   << /Path (F:/WIN2000/Fonts/cour.ttf) /FontType 1 /FAPI /UFST >> ;
31
+%  /FCO1        << /Path (F:/AFPL/ufst/fontdata/MTFONTS/PCLPS3/MT1/PCLP3__G.FCO) /FontType 42 /FAPI /UFST /SubfontId 10 >> ;
32
+%
33
+

+ 107
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PCLPS2 View File

@@ -0,0 +1,107 @@
1
+%    Copyright (C) 2001, 2002 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: FCOfontmap-PCLPS2 8954 2008-08-08 04:22:38Z ray $
17
+
18
+% May add general FAPIfontmap records here like this :
19
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
20
+
21
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
22
+FCOfontfile ReadFCOfontmap:
23
+0     Albertus-Medium
24
+1     Albertus-ExtraBold
25
+2     AntiqueOlive
26
+3     AntiqueOlive-Italic
27
+4     AntiqueOlive-Bold
28
+5     Arial
29
+6     Arial-Italic
30
+7     Arial-Bold
31
+8     Arial-BoldItalic
32
+9     Clarendon-Condensed-Bold
33
+10    Coronet
34
+11    CourierHP
35
+12    CourierHP-Italic
36
+13    CourierHP-Bold
37
+14    CourierHP-BoldItalic
38
+15    Garamond-Antiqua
39
+16    Garamond-Kursiv
40
+17    Garamond-Halbfett
41
+18    Garamond-KursivHalbfett
42
+19    LetterGothic
43
+20    LetterGothic-Italic
44
+21    LetterGothic-Bold
45
+22    Marigold
46
+23    CGOmega
47
+24    CGOmega-Italic
48
+25    CGOmega-Bold
49
+26    CGOmega-BoldItalic
50
+27    SymbolMT  SymbolEncoding  FCO_Symbol
51
+28    CGTimes
52
+29    CGTimes-Italic
53
+30    CGTimes-Bold
54
+31    CGTimes-BoldItalic
55
+32    TimesNewRoman
56
+33    TimesNewRoman-Italic
57
+34    TimesNewRoman-Bold
58
+35    TimesNewRoman-BoldItalic
59
+36    UniversMedium
60
+37    UniversMedium-Italic
61
+38    Univers-Bold
62
+39    Univers-BoldItalic
63
+40    Univers-Condensed-Medium
64
+41    Univers-Condensed-MediumItalic
65
+42    Univers-Condensed-Bold
66
+43    Univers-Condensed-BoldItalic
67
+44    Courier-
68
+45    Courier-Italic
69
+46    Courier-Bold-
70
+47    Courier-BoldItalic
71
+48    AvantGarde-Book
72
+49    AvantGarde-BookOblique
73
+50    AvantGarde-Demi
74
+51    AvantGarde-DemiOblique
75
+52    Bookman-Light
76
+53    Bookman-LightItalic
77
+54    Bookman-Demi
78
+55    Bookman-DemiItalic
79
+56    Courier
80
+57    Courier-Oblique
81
+58    Courier-Bold
82
+59    Courier-BoldOblique
83
+60    Helvetica
84
+61    Helvetica-Oblique
85
+62    Helvetica-Bold
86
+63    Helvetica-BoldOblique
87
+64    Helvetica-Narrow
88
+65    Helvetica-Narrow-Oblique
89
+66    Helvetica-Narrow-Bold
90
+67    Helvetica-Narrow-BoldOblique
91
+68    NewCenturySchlbk-Roman
92
+69    NewCenturySchlbk-Italic
93
+70    NewCenturySchlbk-Bold
94
+71    NewCenturySchlbk-BoldItalic
95
+72    Palatino-Roman
96
+73    Palatino-Italic
97
+74    Palatino-Bold
98
+75    Palatino-BoldItalic
99
+76    Symbol  SymbolEncoding  FCO_Symbol
100
+77    Times-Roman
101
+78    Times-Italic
102
+79    Times-Bold
103
+80    Times-BoldItalic
104
+81    ZapfChancery-MediumItalic
105
+82    ZapfDingbats DingbatsEncoding FCO_Dingbats
106
+EndFCOfontmap
107
+%EOF

+ 198
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PCLPS3 View File

@@ -0,0 +1,198 @@
1
+%    Copyright (C) 2001, 2002 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: FCOfontmap-PCLPS3 8269 2007-10-03 17:37:35Z ray $
17
+
18
+% May add general FAPIfontmap records here like this :
19
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
20
+
21
+% Mapping Postscript fonts to pclp2_xj.fco FCO members :
22
+FCOfontfile ReadFCOfontmap:
23
+0         Albertus-Medium
24
+1         Albertus-ExtraBold
25
+2         AntiqueOlive
26
+3         AntiqueOlive-Italic
27
+4         AntiqueOlive-Bold
28
+5         Arial
29
+6         Arial-Italic
30
+7         Arial-Bold
31
+8         Arial-BoldItalic
32
+9         Clarendon-Condensed-Bold
33
+10        Coronet
34
+11        CourierHP
35
+12        CourierHP-Italic
36
+13        CourierHP-Bold
37
+14        CourierHP-BoldItalic
38
+15        Garamond-Antiqua
39
+16        Garamond-Kursiv
40
+17        Garamond-Halbfett
41
+18        Garamond-KursivHalbfett
42
+19        LetterGothic
43
+20        LetterGothic-Italic
44
+21        LetterGothic-Bold
45
+22        Marigold
46
+23        CGOmega
47
+24        CGOmega-Italic
48
+25        CGOmega-Bold
49
+26        CGOmega-BoldItalic
50
+27        SymbolMT  SymbolEncoding  FCO_Symbol
51
+28        CGTimes
52
+29        CGTimes-Italic
53
+30        CGTimes-Bold
54
+31        CGTimes-BoldItalic
55
+32        TimesNewRoman
56
+33        TimesNewRoman-Italic
57
+34        TimesNewRoman-Bold
58
+35        TimesNewRoman-BoldItalic
59
+36        Univers-Medium
60
+37        Univers-MediumItalic
61
+38        Univers-Bold
62
+39        Univers-BoldItalic
63
+40        Univers-Condensed-Medium
64
+41        Univers-Condensed-MediumItalic
65
+42        Univers-Condensed-Bold
66
+43        Univers-Condensed-BoldItalic
67
+44        Courier
68
+45        Courier-Italic
69
+46        Courier-Bold
70
+47        Courier-BoldItalic
71
+48        AlbertusMT-Light
72
+49        AlbertusMT
73
+50        AlbertusMT-Italic
74
+51        AntiqueOlive-Roman
75
+52        AntiqueOlive-Italic
76
+53        AntiqueOlive-Bold
77
+54        AntiqueOlive-Compact
78
+55        AvantGarde-Book
79
+56        AvantGarde-BookOblique
80
+57        AvantGarde-Demi
81
+58        AvantGarde-DemiOblique
82
+59        Bodoni
83
+60        Bodoni-Italic
84
+61        Bodoni-Bold
85
+62        Bodoni-BoldItalic
86
+63        Bodoni-Poster
87
+64        Bodoni-PosterCompressed
88
+65        Bookman-Light
89
+66        Bookman-LightItalic
90
+67        Bookman-Demi
91
+68        Bookman-DemiItalic
92
+69        Candid
93
+70        Apple-Chancery
94
+71        Chicago
95
+72        Clarendon-Light
96
+73        Clarendon
97
+74        Clarendon-Bold
98
+75        CooperBlack
99
+76        CooperBlack-Italic
100
+77        Copperplate-ThirtyTwoBC
101
+78        Copperplate-ThirtyThreeBC
102
+79        Coronet-Regular
103
+80        Courier
104
+81        Courier-Oblique
105
+82        Courier-Bold
106
+83        Courier-BoldOblique
107
+84        Eurostile
108
+85        Eurostile-Bold
109
+86        Eurostile-ExtendedTwo
110
+87        Eurostile-BoldExtendedTwo
111
+88        StempelGaramond-Roman
112
+89        StempelGaramond-Italic
113
+90        StempelGaramond-Bold
114
+91        StempelGaramond-BoldItalic
115
+92        Geneva
116
+93        GillSans-Light
117
+94        GillSans-LightItalic
118
+95        GillSans
119
+96        GillSans-Italic
120
+97        GillSans-Bold
121
+98        GillSans-BoldItalic
122
+99        GillSans-ExtraBold
123
+100       GillSans-Condensed
124
+101       GillSans-BoldCondensed
125
+102       Goudy
126
+103       Goudy-Italic
127
+104       Goudy-Bold
128
+105       Goudy-BoldItalic
129
+106       Goudy-ExtraBold
130
+107       Helvetica-Condensed
131
+108       Helvetica-Condensed-Oblique
132
+109       Helvetica-Condensed-Bold
133
+110       Helvetica-Condensed-BoldObl
134
+111       Helvetica
135
+112       Helvetica-Oblique
136
+113       Helvetica-Bold
137
+114       Helvetica-BoldOblique
138
+115       Helvetica-Narrow
139
+116       Helvetica-Narrow-Oblique
140
+117       Helvetica-Narrow-Bold
141
+118       Helvetica-Narrow-BoldOblique
142
+119       HoeflerText-Regular
143
+120       HoeflerText-Italic
144
+121       HoeflerText-Black
145
+122       HoeflerText-BlackItalic
146
+123       HoeflerText-Ornaments
147
+124       JoannaMT
148
+125       JoannaMT-Italic
149
+126       JoannaMT-Bold
150
+127       JoannaMT-BoldItalic
151
+128       LetterGothic
152
+129       LetterGothic-Slanted
153
+130       LetterGothic-Bold
154
+131       LetterGothic-BoldSlanted
155
+132       LubalinGraph-Book
156
+133       LubalinGraph-BookOblique
157
+134       LubalinGraph-Demi
158
+135       LubalinGraph-DemiOblique
159
+136       Monaco
160
+137       MonaLisa-Recut
161
+138       NewYork
162
+139       NewCenturySchlbk-Roman
163
+140       NewCenturySchlbk-Italic
164
+141       NewCenturySchlbk-Bold
165
+142       NewCenturySchlbk-BoldItalic
166
+143       Optima
167
+144       Optima-Italic
168
+145       Optima-Bold
169
+146       Optima-BoldItalic
170
+147       Oxford
171
+148       Palatino-Roman
172
+149       Palatino-Italic
173
+150       Palatino-Bold
174
+151       Palatino-BoldItalic
175
+152    Symbol  SymbolEncoding  FCO_Symbol
176
+153       Taffy
177
+154       Times-Roman
178
+155       Times-Italic
179
+156       Times-Bold
180
+157       Times-BoldItalic
181
+158       Univers
182
+159       Univers-Oblique
183
+160       Univers-Bold
184
+161       Univers-BoldOblique
185
+162       Univers-Condensed
186
+163       Univers-CondensedOblique
187
+164       Univers-CondensedBold
188
+165       Univers-CondensedBoldOblique
189
+166       Univers-Light
190
+167       Univers-LightOblique
191
+168       Univers-Extended
192
+169       Univers-ExtendedObl
193
+170       Univers-BoldExt
194
+171       Univers-BoldExtObl
195
+172       ZapfChancery-MediumItalic
196
+173       ZapfDingbats DingbatsEncoding FCO_Dingbats
197
+EndFCOfontmap
198
+%EOF

+ 159
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/FCOfontmap-PS3 View File

@@ -0,0 +1,159 @@
1
+%    Copyright (C) 2001, 2002 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: FCOfontmap-PS3 8269 2007-10-03 17:37:35Z ray $
17
+
18
+% May add general FAPIfontmap records here like this :
19
+/Wingdings-Regular << /Path FCOfontfile2 /FontType 1 /FAPI /UFST /SubfontId 0 /Encoding /Wingdings /Decoding /FCO_Wingdings>> ;
20
+
21
+% Mapping Postscript fonts to ps3___xh.fco FCO members :
22
+FCOfontfile ReadFCOfontmap:
23
+0      AlbertusMT-Light
24
+1      AlbertusMT
25
+2      AlbertusMT-Italic
26
+3      AntiqueOlive-Roman
27
+4      AntiqueOlive-Italic
28
+5      AntiqueOlive-Bold
29
+6      AntiqueOlive-Compact
30
+7      ArialMT
31
+8      Arial-ItalicMT
32
+9      Arial-BoldMT
33
+10     Arial-BoldItalicMT
34
+11     AvantGarde-Book
35
+12     AvantGarde-BookOblique
36
+13     AvantGarde-Demi
37
+14     AvantGarde-DemiOblique
38
+15     Bodoni
39
+16     Bodoni-Italic
40
+17     Bodoni-Bold
41
+18     Bodoni-BoldItalic
42
+19     Bodoni-Poster
43
+20     Bodoni-PosterCompressed
44
+21     Bookman-Light
45
+22     Bookman-LightItalic
46
+23     Bookman-Demi
47
+24     Bookman-DemiItalic
48
+%   25     Candid       % Disabled due to unknown glyph names.
49
+26     Apple-Chancery
50
+27     Chicago
51
+28     Clarendon-Light
52
+29     Clarendon
53
+30     Clarendon-Bold
54
+31     CooperBlack
55
+32     CooperBlack-Italic
56
+33     Copperplate-ThirtyTwoBC
57
+34     Copperplate-ThirtyThreeBC
58
+35     Coronet-Regular
59
+36     Courier
60
+37     Courier-Oblique
61
+38     Courier-Bold
62
+39     Courier-BoldOblique
63
+40     Eurostile
64
+41     Eurostile-Bold
65
+42     Eurostile-ExtendedTwo
66
+43     Eurostile-BoldExtendedTwo
67
+44     StempelGaramond-Roman
68
+45     StempelGaramond-Italic
69
+46     StempelGaramond-Bold
70
+47     StempelGaramond-BoldItalic
71
+48     Geneva
72
+49     GillSans-Light
73
+50     GillSans-LightItalic
74
+51     GillSans
75
+52     GillSans-Italic
76
+53     GillSans-Bold
77
+54     GillSans-BoldItalic
78
+55     GillSans-ExtraBold
79
+56     GillSans-Condensed
80
+57     GillSans-BoldCondensed
81
+58     Goudy
82
+59     Goudy-Italic
83
+60     Goudy-Bold
84
+61     Goudy-BoldItalic
85
+62     Goudy-ExtraBold
86
+63     Helvetica-Condensed
87
+64     Helvetica-Condensed-Oblique
88
+65     Helvetica-Condensed-Bold
89
+66     Helvetica-Condensed-BoldObl
90
+67     Helvetica
91
+68     Helvetica-Oblique
92
+69     Helvetica-Bold
93
+70     Helvetica-BoldOblique
94
+71     Helvetica-Narrow
95
+72     Helvetica-Narrow-Oblique
96
+73     Helvetica-Narrow-Bold
97
+74     Helvetica-Narrow-BdOblique
98
+75     HoeflerText-Regular
99
+76     HoeflerText-Italic
100
+77     HoeflerText-Black
101
+78     HoeflerText-BlackItalic
102
+79     HoeflerText-Ornaments
103
+80     JoannaMT
104
+81     JoannaMT-Italic
105
+82     JoannaMT-Bold
106
+83     JoannaMT-BoldItalic
107
+84     LetterGothic
108
+85     LetterGothic-Slanted
109
+86     LetterGothic-Bold
110
+87     LetterGothic-BoldSlanted
111
+88     LubalinGraph-Book
112
+89     LubalinGraph-BookOblique
113
+90     LubalinGraph-Demi
114
+91     LubalinGraph-DemiOblique
115
+92     Marigold
116
+93     Monaco
117
+94     MonaLisa-Recut
118
+95     NewYork
119
+96     NewCenturySchlbk-Roman
120
+97     NewCenturySchlbk-Italic
121
+98     NewCenturySchlbk-Bold
122
+99     NewCenturySchlbk-BoldItalic
123
+100    Optima
124
+101    Optima-Italic
125
+102    Optima-Bold
126
+103    Optima-BoldItalic
127
+104    Oxford
128
+105    Palatino-Roman
129
+106    Palatino-Italic
130
+107    Palatino-Bold
131
+108    Palatino-BoldItalic
132
+109    Symbol  SymbolEncoding  FCO_Symbol
133
+110    Taffy
134
+111    Times-Roman
135
+112    Times-Italic
136
+113    Times-Bold
137
+114    Times-BoldItalic
138
+115    TimesNewRomanPSMT
139
+116    TimesNewRomanPS-ItalicMT
140
+117    TimesNewRomanPS-BoldMT
141
+118    TimesNewRomanPS-BdItMT
142
+119    Univers
143
+120    Univers-Oblique
144
+121    Univers-Bold
145
+122    Univers-BoldOblique
146
+123    Univers-Condensed
147
+124    Univers-CondensedOblique
148
+125    Univers-CondensedBold
149
+126    Univers-CondensedBdOblique
150
+127    Univers-Light
151
+128    Univers-LightOblique
152
+129    Univers-Extended
153
+130    Univers-ExtendedObl
154
+131    Univers-BoldExt
155
+132    Univers-BoldExtObl
156
+133    ZapfChancery-MediumItalic
157
+134    ZapfDingbats DingbatsEncoding FCO_Dingbats
158
+EndFCOfontmap
159
+%EOF

+ 4
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap View File

@@ -0,0 +1,4 @@
1
+%!
2
+% See Fontmap.GS for the syntax of real Fontmap files.
3
+%% Replace 1 (Fontmap.GS)
4
+(Fontmap.GS) .runlibfile

+ 168
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.ATB View File

@@ -0,0 +1,168 @@
1
+%    Copyright (C) 1994 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.ATB 6300 2005-12-28 19:56:24Z giles $
17
+% Fontmap.ATB - an alternative Fontmap for Ghostscript,
18
+% suitable for use with the 65 Adobe Type Manager fonts 
19
+% supplied with Adobe Type Basics.
20
+
21
+% Before you use ATM fonts with Ghostscript, please read carefully
22
+% the license that accompanies the ATM fonts; neither Aladdin Enterprises
23
+% nor any other distributor of Ghostscript takes any responsibility for
24
+% any possible violations of such licenses.
25
+
26
+% The 65 Adobe Type Basics ATM fonts
27
+
28
+%disk 1
29
+/Bookman-Light			(bkl_____.pfb)	;
30
+/Bookman-Demi			(bkd_____.pfb)	;
31
+/Bookman-DemiItalic		(bkdi____.pfb)	;
32
+/Bookman-LightItalic		(bkli____.pfb)	;
33
+/Courier			(com_____.pfb)	;
34
+/Courier-Bold			(cob_____.pfb)	;
35
+/Courier-BoldOblique		(cobo____.pfb)	;
36
+/Courier-Oblique		(coo_____.pfb)	;
37
+/Helvetica			(hv______.pfb)	;
38
+/Helvetica-Bold			(hvb_____.pfb)	;
39
+/Helvetica-BoldOblique		(hvbo____.pfb)	;
40
+/Helvetica-Oblique		(hvo_____.pfb)	;
41
+/Helvetica-Narrow		(hvn_____.pfb)	;
42
+/Helvetica-Narrow-Bold		(hvnb____.pfb)	;
43
+/Helvetica-Narrow-BoldOblique	(hvnbo___.pfb)	;
44
+/Helvetica-Narrow-Oblique	(hvno____.pfb)	;
45
+/Palatino-Roman			(por_____.pfb)	;
46
+/Palatino-Bold			(pob_____.pfb)	;
47
+/Palatino-BoldItalic		(pobi____.pfb)	;
48
+/Palatino-Italic		(poi_____.pfb)	;
49
+/Symbol				(sy______.pfb)	;
50
+/Times-Roman			(tir_____.pfb)	;
51
+/Times-Bold			(tib_____.pfb)	;
52
+/Times-BoldItalic		(tibi____.pfb)	;
53
+/Times-Italic			(tii_____.pfb)	;
54
+
55
+% disk2
56
+/AGaramond-Regular		(gdrg____.pfb)	;
57
+/AGaramond-Italic		(gdi_____.pfb)	;
58
+/AGaramond-Bold			(gdb_____.pfb)	;
59
+/AGaramond-BoldItalic		(gdbi____.pfb)	;
60
+/Americana			(am______.pfb)	;
61
+/Americana-ExtraBold		(ameb____.pfb)	;
62
+/AvantGarde-Book		(agw_____.pfb)	;
63
+/AvantGarde-Demi		(agd_____.pfb)	;
64
+/AvantGarde-DemiOblique		(agdo____.pfb)	;
65
+/AvantGarde-BookOblique		(agwo____.pfb)	;
66
+/Carta				(cr______.pfb)	;
67
+/Kaufmann			(kf______.pfb)	;
68
+/Lithos-Regular			(lorg____.pfb)	;
69
+/Lithos-Black			(lobl____.pfb)	;
70
+/NewCenturySchlbk-Roman		(ncr_____.pfb)	;
71
+/NewCenturySchlbk-Bold		(ncb_____.pfb)	;
72
+/NewCenturySchlbk-BoldItalic	(ncbi____.pfb)	;
73
+/NewCenturySchlbk-Italic	(nci_____.pfb)	;
74
+/Parisian			(pn______.pfb)	;
75
+/ParkAvenue			(pa______.pfb)	;
76
+/Tekton				(tkrg____.pfb)	;
77
+/Tekton-Bold			(tkb_____.pfb)	;
78
+/Trajan-Bold			(tjb_____.pfb)	;
79
+/ZapfChancery-MediumItalic	(zcmi____.pfb)	;
80
+/ZapfDingbats			(zd______.pfb)	;
81
+
82
+%disk 3
83
+/ACaslon-Regular		(awrg____.pfb)	;
84
+/ACaslon-Semibold		(awsb____.pfb)	;
85
+/ACaslon-SemiboldItalic		(awsbi___.pfb)	;
86
+/ACaslon-Italic			(awi_____.pfb)	;
87
+/Barmeno-Regular		(bfrg____.pfb)	;
88
+/Barmeno-Medium			(bfm_____.pfb)	;
89
+/Barmeno-Bold			(bfb_____.pfb)	;
90
+/Barmeno-ExtraBold		(bfeb____.pfb)	;
91
+/Blackoak			(bo______.pfb)	;
92
+/Formata-Regular		(fmrg____.pfb)	;
93
+/Formata-Medium			(fmm_____.pfb)	;
94
+/Formata-MediumItalic		(fmmi____.pfb)	;
95
+/Formata-Italic			(fmi_____.pfb)	;
96
+/Poetica-SuppOrnaments		(pvor____.pfb)	;
97
+/WoodtypeOrnaments-Two		(woor2___.pfb)	;
98
+
99
+
100
+% Fonts converted from bitmaps.
101
+
102
+/Charter-Roman			(bchr.gsf)	;
103
+/Charter-Italic			(bchri.gsf)	;
104
+/Charter-Bold			(bchb.gsf)	;
105
+/Charter-BoldItalic		(bchbi.gsf)	;
106
+
107
+/ZapfChancery			(zcr.gsf)	;
108
+/ZapfChancery-Oblique		(zcro.gsf)	;
109
+/ZapfChancery-Bold		(zcb.gsf)	;
110
+
111
+% Fonts from the X11R5 distribution.
112
+
113
+/Utopia-Regular		(putr.gsf)	;
114
+/Utopia-Italic		(putri.gsf)	;
115
+/Utopia-Bold		(putb.gsf)	;
116
+/Utopia-BoldItalic	(putbi.gsf)	;
117
+
118
+% Shareware fonts.  See FONTMAP.GS for the copyright statements.
119
+
120
+/Shareware-Cyrillic-Regular	(fcyr.gsf)	;
121
+/Shareware-Cyrillic-Italic	(fcyri.gsf)	;
122
+% Aliases
123
+/Cyrillic			/Cyrillic-Regular	;
124
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
125
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
126
+
127
+/Calligraphic-Hiragana		(fhirw.gsf)	;
128
+/Calligraphic-Katakana		(fkarw.gsf)	;
129
+
130
+% Fonts converted from Hershey outlines.
131
+
132
+/Hershey-Gothic-English		(hrge_r.gsf)	4290000 ;
133
+/Hershey-Gothic-English-Bold	(hrge_rb.gsf)	4290030 ;
134
+/Hershey-Gothic-English-Oblique	(hrge_ro.gsf)	4290010 ;
135
+
136
+/Hershey-Gothic-German		(hrgr_r.gsf)	4291000 ;
137
+/Hershey-Gothic-German-Bold	(hrgr_rb.gsf)	4291030 ;
138
+/Hershey-Gothic-German-Oblique	(hrgr_ro.gsf)	4291010 ;
139
+
140
+/Hershey-Gothic-Italian		(hrit_r.gsf)	4292000 ; 
141
+/Hershey-Gothic-Italian-Bold	(hrit_rb.gsf)	4292030 ;
142
+/Hershey-Gothic-Italian-Oblique	(hrit_ro.gsf)	4292010 ;
143
+
144
+/Hershey-Greek-Complex		(hrgk_c.gsf)	4293200 ;
145
+/Hershey-Greek-Simplex		(hrgk_s.gsf)	4293100 ;
146
+
147
+/Hershey-Plain			(hrpl_r.gsf)	4294000 ;
148
+/Hershey-Plain-Bold		(hrpl_rb.gsf)	4294030 ;
149
+/Hershey-Plain-Oblique		(hrpl_ro.gsf)	4294010 ;
150
+/Hershey-Plain-Simplex		(hrpl_s.gsf)	4294100 ;
151
+/Hershey-Plain-Simplex-Bold	(hrpl_sb.gsf)	4294130 ;
152
+/Hershey-Plain-Simplex-Bold-Oblique (hrpl_sbo.gsf) 4294140 ;
153
+/Hershey-Plain-Simplex-Oblique	(hrpl_so.gsf)	4294110 ;
154
+/Hershey-Plain-Triplex		(hrpl_t.gsf)	4294300 ;
155
+/Hershey-Plain-Triplex-Italic	(hrpl_ti.gsf)	4294320 ;
156
+/Hershey-Plain-Triplex-Bold	(hrpl_tb.gsf)	4294330 ;
157
+/Hershey-Plain-Triplex-Bold-Italic (hrpl_tbi.gsf) 4294350 ;
158
+
159
+/Hershey-Script-Complex		(hrsc_c.gsf)	4295200 ;
160
+/Hershey-Script-Complex-Bold	(hrsc_cb.gsf)	4295230 ;
161
+/Hershey-Script-Complex-Oblique	(hrsc_co.gsf)	4295210 ;
162
+/Hershey-Script-Simplex		(hrsc_s.gsf)	4295100 ;
163
+/Hershey-Script-Simplex-Bold	(hrsc_sb.gsf)	4295130 ;
164
+/Hershey-Script-Simplex-Oblique	(hrsc_so.gsf)	4295110 ;
165
+
166
+% This font, and only this font among the Hershey fonts, uses
167
+% the SymbolEncoding.
168
+/Hershey-Symbol			(hrsy_r.gsf)	4296000 ;

+ 185
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.ATM View File

@@ -0,0 +1,185 @@
1
+%    Copyright (C) 1990, 1992, 1994, 1996 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.ATM 6300 2005-12-28 19:56:24Z giles $
17
+% Fontmap.ATM - an alternative Fontmap for Ghostscript,
18
+% suitable for use with Adobe Type Manager fonts.
19
+
20
+% Before you use ATM fonts with Ghostscript, please read carefully
21
+% the license that accompanies the ATM fonts; neither Aladdin Enterprises
22
+% nor any other distributor of Ghostscript takes any responsibility for
23
+% any possible violations of such licenses.
24
+
25
+% 
26
+%
27
+% Fonts contributed by:
28
+%	URW++ Design and Development Incorporated
29
+%	Poppenbuetteler Bogen 29A
30
+%	D-22399 Hamburg
31
+%	Germany
32
+%	tel. +49 (40) 60 60 50
33
+%	fax +49 (40) 60 60 51 11
34
+%	http://www.urwpp.de
35
+% for distribution under the GNU License and Aladdin Free Public License.
36
+% See the notice at the head of this Fontmap file for licensing terms.
37
+% Each of these fonts is individually covered by the license:
38
+% for licensing purposes, they are not "part of" any larger entity.
39
+% The following notice applies to these fonts:
40
+%
41
+%	Copyright URW Software, Copyright 1994 by URW.
42
+%
43
+
44
+% Actual fonts
45
+
46
+/URWBookmanL-DemiBold	(b018015l.pfb)	;
47
+/URWBookmanL-DemiBoldItal	(b018035l.pfb)	;
48
+/URWBookmanL-Ligh	(b018012l.pfb)	;
49
+/URWBookmanL-LighItal	(b018032l.pfb)	;
50
+
51
+/NimbusMonL-Regu	(n022003l.pfb)	;
52
+/NimbusMonL-ReguObli	(n022023l.pfb)	;
53
+/NimbusMonL-Bold	(n022004l.pfb)	;
54
+/NimbusMonL-BoldObli	(n022024l.pfb)	;
55
+
56
+/URWGothicL-Book	(a010013l.pfb)	;
57
+/URWGothicL-BookObli	(a010033l.pfb)	;
58
+/URWGothicL-Demi	(a010015l.pfb)	;
59
+/URWGothicL-DemiObli	(a010035l.pfb)	;
60
+
61
+/NimbusSanL-Regu	(n019003l.pfb)	;
62
+/NimbusSanL-ReguItal	(n019023l.pfb)	;
63
+/NimbusSanL-Bold	(n019004l.pfb)	;
64
+/NimbusSanL-BoldItal	(n019024l.pfb)	;
65
+
66
+/NimbusSanL-ReguCond	(n019043l.pfb)	;
67
+/NimbusSanL-ReguCondItal	(n019063l.pfb)	;
68
+/NimbusSanL-BoldCond	(n019044l.pfb)	;
69
+/NimbusSanL-BoldCondItal	(n019064l.pfb)	;
70
+
71
+/URWPalladioL-Roma	(p052003l.pfb)	;
72
+/URWPalladioL-Ital	(p052023l.pfb)	;
73
+/URWPalladioL-Bold	(p052004l.pfb)	;
74
+/URWPalladioL-BoldItal	(p052024l.pfb)	;
75
+
76
+/CenturySchL-Roma	(c059013l.pfb)	;
77
+/CenturySchL-Ital	(c059033l.pfb)	;
78
+/CenturySchL-Bold	(c059016l.pfb)	;
79
+/CenturySchL-BoldItal	(c059036l.pfb)	;
80
+
81
+/NimbusRomNo9L-Regu	(n021003l.pfb)	;
82
+/NimbusRomNo9L-ReguItal	(n021023l.pfb)	;
83
+/NimbusRomNo9L-Medi	(n021004l.pfb)	;
84
+/NimbusRomNo9L-MediItal	(n021024l.pfb)	;
85
+
86
+/StandardSymL	(s050000l.pfb)	;
87
+
88
+/URWChanceryL-MediItal	(z003034l.pfb)	;
89
+
90
+/Dingbats	(d050000l.pfb)	;
91
+
92
+% Aliases
93
+
94
+/Bookman-Demi			/URWBookmanL-DemiBold	;
95
+/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
96
+/Bookman-Light			/URWBookmanL-Ligh	;
97
+/Bookman-LightItalic		/URWBookmanL-LighItal	;
98
+
99
+/Courier			/NimbusMonL-Regu	;
100
+/Courier-Oblique		/NimbusMonL-ReguObli	;
101
+/Courier-Bold			/NimbusMonL-Bold	;
102
+/Courier-BoldOblique		/NimbusMonL-BoldObli	;
103
+
104
+/AvantGarde-Book		/URWGothicL-Book	;
105
+/AvantGarde-BookOblique		/URWGothicL-BookObli	;
106
+/AvantGarde-Demi		/URWGothicL-Demi	;
107
+/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
108
+
109
+/Helvetica			/NimbusSanL-Regu	;
110
+/Helvetica-Oblique		/NimbusSanL-ReguItal	;
111
+/Helvetica-Bold			/NimbusSanL-Bold	;
112
+/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
113
+
114
+/Helvetica-Narrow		/NimbusSanL-ReguCond	;
115
+/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
116
+/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
117
+/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
118
+
119
+/Palatino-Roman			/URWPalladioL-Roma	;
120
+/Palatino-Italic		/URWPalladioL-Ital	;
121
+/Palatino-Bold			/URWPalladioL-Bold	;
122
+/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
123
+
124
+/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
125
+/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
126
+/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
127
+/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
128
+
129
+/Times-Roman			/NimbusRomNo9L-Regu	;
130
+/Times-Italic			/NimbusRomNo9L-ReguItal	;
131
+/Times-Bold			/NimbusRomNo9L-Medi	;
132
+/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
133
+
134
+/Symbol				/StandardSymL	;
135
+
136
+/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
137
+
138
+/ZapfDingbats			/Dingbats	;
139
+
140
+
141
+% ATM fonts.
142
+
143
+/Courier			(com_____.pfb)	;
144
+/Courier-Oblique		(coo_____.pfb)	;
145
+/Courier-Bold			(cob_____.pfb)	;
146
+/Courier-BoldOblique		(cobo____.pfb)	;
147
+
148
+/Helvetica			(hv______.pfb)	;
149
+/Helvetica-Oblique		(hvo_____.pfb)	;
150
+/Helvetica-Bold			(hvb_____.pfb)	;
151
+/Helvetica-BoldOblique		(hvbo____.pfb)	;
152
+
153
+/Symbol				(sy______.pfb)	;
154
+
155
+/Times-Roman			(tir_____.pfb)	;
156
+/Times-Italic			(tii_____.pfb)	;
157
+/Times-Bold			(tib_____.pfb)	;
158
+/Times-BoldItalic		(tibi____.pfb)	;
159
+
160
+
161
+% More fonts from Adobe Type Manager for MS Windows.
162
+
163
+/TektonMM                               (zjrg____.pfb)  ;
164
+
165
+/Boulevard				(qtrg____.pfb)  ;
166
+/Anna					(iarg____.pfb)  ;
167
+
168
+/PopplLaudatio-Regular			(pyrg____.pfb)  ;
169
+/PopplLaudatio-Medium			(pym_____.pfb)  ;
170
+/PopplLaudatio-Italic			(pyi_____.pfb)  ;
171
+/PopplLaudatio-MediumItalic		(pymi____.pfb)  ;
172
+
173
+/Boton-Regular				(tnr_____.pfb)  ;
174
+/Boton-Medium				(tnm_____.pfb)  ;
175
+/Boton-Italic				(tni_____.pfb)  ;
176
+/Boton-MediumItalic			(tnmi____.pfb)  ;
177
+
178
+/BaskervilleBE-Regular			(virg____.pfb)  ;
179
+/BaskervilleBE-Medium			(vim_____.pfb)  ;
180
+/BaskervilleBE-Italic			(vii_____.pfb)  ;
181
+/BaskervilleBE-MediumItalic		(vimi____.pfb)  ;
182
+
183
+/Giddyup				(wg______.pfb)  ;
184
+/Giddyup-Thangs				(wgtha___.pfb)  ;
185
+

+ 354
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.GS View File

@@ -0,0 +1,354 @@
1
+% Copyright (C) 1996, 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.GS 8978 2008-08-12 23:44:53Z ray $
17
+% Fontmap - standard font catalog for Ghostscript.
18
+
19
+% ----------------------------------------------------------------
20
+
21
+% This file is a catalog of fonts known to Ghostscript.  Any font
22
+% that is to be loaded automatically when named must be in this catalog,
23
+% except for fonts that Ghostscript finds automatically in directories
24
+% named in the GS_FONTPATH environment variable.
25
+
26
+% Each font has an entry consisting of three items:
27
+%
28
+%	- The name by which the font is known inside Ghostscript
29
+%	(a Ghostscript name preceded by a `/', or a string enclosed
30
+%	in parentheses).  This is used to find the file from which
31
+%	a font of a given name should be loaded.
32
+%
33
+%	- Information depending on whether this is a real font or a
34
+%	font alias:
35
+%
36
+%		- For real fonts, the name of the Ghostscript font
37
+%		file (a Ghostscript string, enclosed in parentheses).
38
+%		The filename should include the extension, which (by
39
+%		convention) is `.gsf'.  `.pfa' and `.pfb' files are
40
+%		also usable as fonts for Ghostscript.
41
+%
42
+%		- For font aliases, the name of the font which should
43
+%		be used when this one is requested, preceded by a
44
+%		`/'.  See the entry for Charter below for an example.
45
+%		Note that an alias name cannot be enclosed in parentheses.
46
+%
47
+%	- At least one space or tab, and a terminating semicolon.
48
+
49
+% The following table is executed as a PostScript file.
50
+% If you add new entries, be sure to copy the punctuation accurately;
51
+% in particular, you must leave at least one space or tab between each
52
+% field in the entry.  Also, please read fonts.doc for important information
53
+% about font names.
54
+
55
+% PDF interpreter evaluates hexadecimal escapes in PDF font names before
56
+% looking up the font. When the resulting name cannot be represented using
57
+% PostScript name syntax, the string can be used instead of the name.
58
+
59
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
60
+% and other programs that don't include full PostScript interpreters,
61
+% as well as with PostScript interpreters; .gsf fonts are compatible with
62
+% PostScript interpreters, but not with ATM or similar programs.
63
+
64
+% 
65
+%
66
+% Fonts contributed by:
67
+%	URW++ Design and Development Incorporated
68
+%	Poppenbuetteler Bogen 29A
69
+%	D-22399 Hamburg
70
+%	Germany
71
+%	tel. +49 (40) 60 60 50
72
+%	fax +49 (40) 60 60 51 11
73
+%	http://www.urwpp.de
74
+% for distribution under the GNU License and Aladdin Free Public License.
75
+% See the notice at the head of this Fontmap file for licensing terms.
76
+% Each of these fonts is individually covered by the license:
77
+% for licensing purposes, they are not "part of" any larger entity.
78
+% The following notice applies to these fonts:
79
+%
80
+%	Copyright URW Software, Copyright 1994 by URW.
81
+%
82
+
83
+% Aliases
84
+
85
+/Bookman-Demi			/URWBookmanL-DemiBold	;
86
+/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
87
+/Bookman-Light			/URWBookmanL-Ligh	;
88
+/Bookman-LightItalic		/URWBookmanL-LighItal	;
89
+
90
+/Courier			/NimbusMonL-Regu	;
91
+/Courier-Oblique		/NimbusMonL-ReguObli	;
92
+/Courier-Bold			/NimbusMonL-Bold	;
93
+/Courier-BoldOblique		/NimbusMonL-BoldObli	;
94
+
95
+/AvantGarde-Book		/URWGothicL-Book	;
96
+/AvantGarde-BookOblique		/URWGothicL-BookObli	;
97
+/AvantGarde-Demi		/URWGothicL-Demi	;
98
+/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
99
+
100
+/Helvetica			/NimbusSanL-Regu	;
101
+/Helvetica-Oblique		/NimbusSanL-ReguItal	;
102
+/Helvetica-Bold			/NimbusSanL-Bold	;
103
+/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
104
+
105
+/Helvetica-Narrow		/NimbusSanL-ReguCond	;
106
+/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
107
+/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
108
+/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
109
+
110
+/Palatino-Roman			/URWPalladioL-Roma	;
111
+/Palatino-Italic		/URWPalladioL-Ital	;
112
+/Palatino-Bold			/URWPalladioL-Bold	;
113
+/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
114
+
115
+/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
116
+/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
117
+/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
118
+/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
119
+
120
+/Times-Roman			/NimbusRomNo9L-Regu	;
121
+/Times-Italic			/NimbusRomNo9L-ReguItal	;
122
+/Times-Bold			/NimbusRomNo9L-Medi	;
123
+/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
124
+
125
+/Symbol				/StandardSymL	;
126
+
127
+/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
128
+
129
+/ZapfDingbats			/Dingbats	;
130
+
131
+% 
132
+%
133
+% Type 1 fonts contributed to the X11R5 distribution.
134
+%
135
+
136
+% The following notice accompanied the Charter fonts.
137
+%
138
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
139
+%
140
+% You are hereby granted permission under all Bitstream propriety rights
141
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
142
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
143
+% for any purpose and without restriction; provided, that this notice is
144
+% left intact on all copies of such fonts and that Bitstream's trademark
145
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
146
+% Type 1 fonts.
147
+%
148
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
149
+
150
+/CharterBT-Roman		(bchr.pfa)	;
151
+/CharterBT-Italic		(bchri.pfa)	;
152
+/CharterBT-Bold			(bchb.pfa)	;
153
+/CharterBT-BoldItalic		(bchbi.pfa)	;
154
+
155
+% Aliases
156
+
157
+/Charter-Roman			/CharterBT-Roman	;
158
+/Charter-Italic			/CharterBT-Italic	;
159
+/Charter-Bold			/CharterBT-Bold		;
160
+/Charter-BoldItalic		/CharterBT-BoldItalic	;
161
+
162
+% The following notice accompanied the Utopia font:
163
+%
164
+%   Permission to use, reproduce, display and distribute the listed
165
+%   typefaces is hereby granted, provided that the Adobe Copyright notice
166
+%   appears in all whole and partial copies of the software and that the
167
+%   following trademark symbol and attribution appear in all unmodified
168
+%   copies of the software:
169
+%
170
+%           Copyright (c) 1989 Adobe Systems Incorporated
171
+%           Utopia (R)
172
+%           Utopia is a registered trademark of Adobe Systems Incorporated
173
+%
174
+%   The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
175
+%   Metric files) donated are:
176
+%
177
+%           Utopia Regular
178
+%           Utopia Italic
179
+%           Utopia Bold
180
+%           Utopia Bold Italic
181
+
182
+/Utopia-Regular		(putr.pfa)	;
183
+/Utopia-Italic		(putri.pfa)	;
184
+/Utopia-Bold		(putb.pfa)	;
185
+/Utopia-BoldItalic	(putbi.pfa)	;
186
+
187
+% 
188
+%
189
+% Fonts contributed by URW GmbH for distribution under the GNU License.
190
+% The following notice accompanied these fonts:
191
+%
192
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
193
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
194
+%
195
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
196
+%
197
+% This program is free software; you can redistribute it and/or modify
198
+% it under the terms of the GNU General Public License as published by
199
+% the Free Software Foundation; either version 2 of the License, or
200
+% (at your option) later version.
201
+%
202
+% This program is distributed in the hope that it will be useful,
203
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
204
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
205
+% See the GNU General Public License for more details.
206
+%
207
+% You should have received a copy of the GNU General Public License
208
+% along with this program; if not, write to the Free Software
209
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
210
+%
211
+% Address:
212
+% URW GmbH
213
+% PC Support
214
+% Harksheider Strasse 102
215
+% 2000 Hamburg 65
216
+% Germany
217
+% Phone: +49 40 60 60 50       (Reception)
218
+% Phone: +49 40 60 60 52 30   (PC Support)
219
+% Fax    : +49 40 60 60 52 52
220
+%
221
+
222
+/URWAntiquaT-RegularCondensed	(u003043t.gsf)	;
223
+/URWGroteskT-Bold		(u004006t.gsf)	;
224
+
225
+% 
226
+%
227
+% Calligraphic Kana fonts.  These are distributed under the OFL 1.1:
228
+%
229
+% Copyright (c) 1993, Kevin Hartig (kevin.hartig@gmail.com),
230
+% with Reserved Font Name Calligraphic-Hiragana and Calligraphic-Katakana.
231
+% This Font Software is licensed under the SIL Open Font License, Version 1.1.
232
+% This license is available with an FAQ at:  http://scripts.sil.org/OFL
233
+
234
+% Hiragana and Katakana fonts.  The character names are inappropriate,
235
+% and the encoding is probably not related to any known standard.
236
+
237
+/Calligraphic-Hiragana		(fhirw.gsf)	;
238
+/Calligraphic-Katakana		(fkarw.gsf)	;
239
+
240
+% 
241
+%
242
+% Public-domain fonts.  These have no copyright, and are of unknown quality.
243
+
244
+% Cyrillic fonts.  The character names are inappropriate,
245
+% and the encoding is probably not related to any known standard.
246
+
247
+/Shareware-Cyrillic-Regular	(fcyr.gsf)	;
248
+/Shareware-Cyrillic-Italic	(fcyri.gsf)	;
249
+
250
+% Aliases
251
+/Cyrillic			/Cyrillic-Regular	;
252
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
253
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
254
+
255
+% 
256
+%
257
+% Fonts converted from Hershey outlines.  These are constructed and
258
+% maintained manually.  These are also in the public domain.
259
+%
260
+% The suggested UniqueID's and filenames are constructed differently for
261
+% these than for the ones above, because of the strange way that the Hershey
262
+% fonts were constructed.  The scheme for these looks like:
263
+%
264
+% 42TTXY0
265
+%
266
+% TT = typeface, X = ``class'', Y = variation
267
+%
268
+% The typeface names and numbers are listed in fonts.mak.
269
+%
270
+% class:
271
+% 0 = normal			= r
272
+% 1 = simplex			= s
273
+% 2 = complex			= c
274
+% 3 = triplex			= t
275
+% 4 = duplex			= d
276
+%
277
+% variation:
278
+% 0 = normal			(omitted)
279
+% 1 = oblique			= o
280
+% 2 = italic			= i
281
+% 3 = bold			= b
282
+% 4 = bold oblique		= bo
283
+% 5 = bold italic		= bi
284
+%
285
+
286
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
287
+% accents, accented characters, and various other non-alphabetics
288
+% to the original Hershey fonts.  These are "freeware", not to be sold.
289
+
290
+/Hershey-Gothic-English		(hrger.pfa)	;	% 5066533
291
+/Hershey-Gothic-German		(hrgrr.pfa)	;
292
+/Hershey-Gothic-Italian		(hritr.pfa)	; 
293
+
294
+/Hershey-Plain-Duplex		(hrpld.pfa)	;
295
+/Hershey-Plain-Duplex-Italic	(hrpldi.pfa)	;
296
+/Hershey-Plain-Triplex		(hrplt.pfa)	;
297
+/Hershey-Plain-Triplex-Italic	(hrplti.pfa)	;
298
+
299
+/Hershey-Script-Complex		(hrscc.pfa)	;
300
+/Hershey-Script-Simplex		(hrscs.pfa)	;	% 5066541
301
+
302
+% Fonts created algorithmically from the above.
303
+
304
+/Hershey-Gothic-English-Bold		(hrgerb.gsf)	;	% 5066542
305
+/Hershey-Gothic-English-Oblique		(hrgero.gsf)	;
306
+/Hershey-Gothic-English-SemiBold	(hrgerd.gsf)	;
307
+/Hershey-Gothic-German-Bold		(hrgrrb.gsf)	;
308
+/Hershey-Gothic-German-Oblique		(hrgrro.gsf)	;
309
+/Hershey-Gothic-Italian-Bold		(hritrb.gsf)	;
310
+/Hershey-Gothic-Italian-Oblique		(hritro.gsf)	;
311
+
312
+/Hershey-Plain-Duplex-Bold		(hrpldb.gsf)	;
313
+/Hershey-Plain-Duplex-Bold-Italic	(hrpldbi.gsf)	;
314
+/Hershey-Plain-Triplex-Bold		(hrpltb.gsf)	;
315
+/Hershey-Plain-Triplex-Bold-Italic	(hrpltbi.gsf)	;
316
+
317
+/Hershey-Script-Complex-Bold		(hrsccb.gsf)	;
318
+/Hershey-Script-Complex-Oblique		(hrscco.gsf)	;
319
+/Hershey-Script-Simplex-Bold		(hrscsb.gsf)	;
320
+/Hershey-Script-Simplex-Oblique		(hrscso.gsf)	;	% 5066556
321
+
322
+% Fonts consisting only of characters from the original Hershey
323
+% distribution.  These are Type 3 fonts.
324
+
325
+/Hershey-Greek-Complex			(hrgkc.gsf)	;	% 5066557
326
+/Hershey-Greek-Simplex			(hrgks.gsf)	;
327
+
328
+/Hershey-Plain				(hrplr.gsf)	;
329
+/Hershey-Plain-Simplex			(hrpls.gsf)	;	% 5066560
330
+
331
+% Fonts created algorithmically from the above.
332
+
333
+/Hershey-Plain-Bold			(hrplrb.gsf)	;	% 5066561
334
+/Hershey-Plain-Bold-Oblique		(hrplrbo.gsf)	;
335
+/Hershey-Plain-Oblique			(hrplro.gsf)	;
336
+/Hershey-Plain-Simplex-Bold		(hrplsb.gsf)	;
337
+/Hershey-Plain-Simplex-Bold-Oblique	(hrplsbo.gsf)	;
338
+/Hershey-Plain-Simplex-Oblique		(hrplso.gsf)	;	% 5066566
339
+
340
+% This font, and only this font among the Hershey fonts, uses
341
+% the SymbolEncoding.
342
+
343
+/Hershey-Symbol				(hrsyr.gsf)	;	% 5066567
344
+
345
+/Arial					/ArialMT		;
346
+/Arial,Bold				/Arial-BoldMT		;
347
+/Arial,Italic				/Arial-ItalicMT		;
348
+/Arial,BoldItalic			/Arial-BoldItalicMT	;
349
+
350
+/TimesNewRoman				/TimesNewRomanPSMT		;
351
+/TimesNewRoman,Bold			/TimesNewRomanPS-BoldMT		;
352
+/TimesNewRoman,Italic			/TimesNewRomanPS-ItalicMT	;
353
+/TimesNewRoman,BoldItalic		/TimesNewRomanPS-BoldItalicMT	;
354
+

+ 214
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.OS2 View File

@@ -0,0 +1,214 @@
1
+%    Copyright (C) 1990, 1992, 1993, 1996 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.OS2 6300 2005-12-28 19:56:24Z giles $
17
+% fontmap.os2 aka Fontmap.OS2 - OS/2 font catalog for Ghostscript.
18
+
19
+% ----------------------------------------------------------------
20
+
21
+% This file is a catalog of fonts known to Ghostscript.  Any font
22
+% that is to be loaded automatically when named must be in this catalog,
23
+% except for fonts that Ghostscript finds automatically in directories
24
+% named in the GS_FONTPATH environment variable.
25
+
26
+% Each font has an entry consisting of three items:
27
+%
28
+%	- The name by which the font is known inside Ghostscript
29
+%	(a Ghostscript name preceded by a `/', or a string enclosed
30
+%	in parentheses).  This is used to find the file from which
31
+%	a font of a given name should be loaded.
32
+%
33
+%	- Information depending on whether this is a real font or a
34
+%	font alias:
35
+%
36
+%		- For real fonts, the name of the Ghostscript font
37
+%		file (a Ghostscript string, enclosed in parentheses).
38
+%		The filename should include the extension, which (by
39
+%		convention) is `.gsf'.  `.pfa' and `.pfb' files are
40
+%		also usable as fonts for Ghostscript.
41
+%
42
+%		- For font aliases, the name of the font which should
43
+%		be used when this one is requested, preceded by a
44
+%		`/'.  See the entry for Charter below for an example.
45
+%
46
+%	- A terminating semicolon.
47
+
48
+% Because of limitations in the MS-DOS environment, Ghostscript font
49
+% file names must be no more than 8 characters long, must consist only
50
+% of LOWER CASE letters, digits, and underscores, and must start with a
51
+% letter.  Font names, on the other hand, need only obey the syntax of
52
+% names in the Ghostscript language, which is much more liberal.
53
+
54
+% Most of the Ghostscript fonts were created automatically from freely
55
+% available bitmaps.  There is a makefile (fonts.mak) that specifies
56
+% how this conversion was done.  fonts.mak also specifies, for each such
57
+% converted font, its uniqueID (an integer used to identify distinct fonts
58
+% within the Ghostscript font machinery), and its encoding (the mapping
59
+% from character codes in a string to character names).  For more detailed
60
+% information, read fonts.mak.
61
+
62
+% The following table is actually a Ghostscript data structure.
63
+% If you add new entries, be sure to copy the punctuation accurately;
64
+% in particular, you must leave at least one space or tab between each
65
+% field in the entry.  Also, please read fonts.doc for important information
66
+% about font names.
67
+
68
+
69
+% 
70
+%
71
+% Fonts contributed by:
72
+%	URW++ Design and Development Incorporated
73
+%	Poppenbuetteler Bogen 29A
74
+%	D-22399 Hamburg
75
+%	Germany
76
+%	tel. +49 (40) 60 60 50
77
+%	fax +49 (40) 60 60 51 11
78
+%	http://www.urwpp.de
79
+% for distribution under the GNU License and Aladdin Free Public License.
80
+% See the notice at the head of this Fontmap file for licensing terms.
81
+% Each of these fonts is individually covered by the license:
82
+% for licensing purposes, they are not "part of" any larger entity.
83
+% The following notice applies to these fonts:
84
+%
85
+%	Copyright URW Software, Copyright 1994 by URW.
86
+%
87
+
88
+% Actual fonts
89
+
90
+/URWBookmanL-DemiBold	(b018015l.pfb)	;
91
+/URWBookmanL-DemiBoldItal	(b018035l.pfb)	;
92
+/URWBookmanL-Ligh	(b018012l.pfb)	;
93
+/URWBookmanL-LighItal	(b018032l.pfb)	;
94
+
95
+/NimbusMonL-Regu	(n022003l.pfb)	;
96
+/NimbusMonL-ReguObli	(n022023l.pfb)	;
97
+/NimbusMonL-Bold	(n022004l.pfb)	;
98
+/NimbusMonL-BoldObli	(n022024l.pfb)	;
99
+
100
+/URWGothicL-Book	(a010013l.pfb)	;
101
+/URWGothicL-BookObli	(a010033l.pfb)	;
102
+/URWGothicL-Demi	(a010015l.pfb)	;
103
+/URWGothicL-DemiObli	(a010035l.pfb)	;
104
+
105
+/NimbusSanL-Regu	(n019003l.pfb)	;
106
+/NimbusSanL-ReguItal	(n019023l.pfb)	;
107
+/NimbusSanL-Bold	(n019004l.pfb)	;
108
+/NimbusSanL-BoldItal	(n019024l.pfb)	;
109
+
110
+/NimbusSanL-ReguCond	(n019043l.pfb)	;
111
+/NimbusSanL-ReguCondItal	(n019063l.pfb)	;
112
+/NimbusSanL-BoldCond	(n019044l.pfb)	;
113
+/NimbusSanL-BoldCondItal	(n019064l.pfb)	;
114
+
115
+/URWPalladioL-Roma	(p052003l.pfb)	;
116
+/URWPalladioL-Ital	(p052023l.pfb)	;
117
+/URWPalladioL-Bold	(p052004l.pfb)	;
118
+/URWPalladioL-BoldItal	(p052024l.pfb)	;
119
+
120
+/CenturySchL-Roma	(c059013l.pfb)	;
121
+/CenturySchL-Ital	(c059033l.pfb)	;
122
+/CenturySchL-Bold	(c059016l.pfb)	;
123
+/CenturySchL-BoldItal	(c059036l.pfb)	;
124
+
125
+/NimbusRomNo9L-Regu	(n021003l.pfb)	;
126
+/NimbusRomNo9L-ReguItal	(n021023l.pfb)	;
127
+/NimbusRomNo9L-Medi	(n021004l.pfb)	;
128
+/NimbusRomNo9L-MediItal	(n021024l.pfb)	;
129
+
130
+/StandardSymL	(s050000l.pfb)	;
131
+
132
+/URWChanceryL-MediItal	(z003034l.pfb)	;
133
+
134
+/Dingbats	(d050000l.pfb)	;
135
+
136
+% Aliases
137
+
138
+/Bookman-Demi			/URWBookmanL-DemiBold	;
139
+/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
140
+/Bookman-Light			/URWBookmanL-Ligh	;
141
+/Bookman-LightItalic		/URWBookmanL-LighItal	;
142
+
143
+/Courier			/NimbusMonL-Regu	;
144
+/Courier-Oblique		/NimbusMonL-ReguObli	;
145
+/Courier-Bold			/NimbusMonL-Bold	;
146
+/Courier-BoldOblique		/NimbusMonL-BoldObli	;
147
+
148
+/AvantGarde-Book		/URWGothicL-Book	;
149
+/AvantGarde-BookOblique		/URWGothicL-BookObli	;
150
+/AvantGarde-Demi		/URWGothicL-Demi	;
151
+/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
152
+
153
+/Helvetica			/NimbusSanL-Regu	;
154
+/Helvetica-Oblique		/NimbusSanL-ReguItal	;
155
+/Helvetica-Bold			/NimbusSanL-Bold	;
156
+/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
157
+
158
+/Helvetica-Narrow		/NimbusSanL-ReguCond	;
159
+/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
160
+/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
161
+/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
162
+
163
+/Palatino-Roman			/URWPalladioL-Roma	;
164
+/Palatino-Italic		/URWPalladioL-Ital	;
165
+/Palatino-Bold			/URWPalladioL-Bold	;
166
+/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
167
+
168
+/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
169
+/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
170
+/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
171
+/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
172
+
173
+/Times-Roman			/NimbusRomNo9L-Regu	;
174
+/Times-Italic			/NimbusRomNo9L-ReguItal	;
175
+/Times-Bold			/NimbusRomNo9L-Medi	;
176
+/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
177
+
178
+/Symbol				/StandardSymL	;
179
+
180
+/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
181
+
182
+/ZapfDingbats			/Dingbats	;
183
+
184
+
185
+% 
186
+% ATM fonts that come with OS/2.
187
+
188
+/Courier			(cour.pfb)	;
189
+/Courier-Oblique		/Courier-Italic	;
190
+/Courier-Italic			(couri.pfb)	;
191
+/Courier-Bold			(courb.pfb)	;
192
+/Courier-BoldOblique		/Courier-BoldItalic	;
193
+/Courier-BoldItalic		(courbi.pfb)	;
194
+
195
+/Helvetica			(helv.pfb)	;
196
+/Helvetica-Oblique		/Helvetica-Italic	;
197
+/Helvetica-Italic		(helvi.pfb)	;
198
+/Helvetica-Bold			(helvb.pfb)	;
199
+/Helvetica-BoldOblique		/Helvetica-BoldItalic	;
200
+/Helvetica-BoldItalic		(helvbi.pfb)	;
201
+
202
+/Symbol				/SymbolSet	;
203
+/SymbolSet			(symb.pfb)	;
204
+
205
+/Times-Roman			/TimesNewRoman	;
206
+/TimesNewRoman			(tnr.pfb)	;
207
+/Times-Italic			/TimesNewRoman-Italic	;
208
+/TimesNewRoman-Italic		(tnri.pfb)	;
209
+/Times-Bold			/TimesNewRoman-Bold	;
210
+/TimesNewRoman-Bold		(tnrb.pfb)	;
211
+/Times-BoldItalic		/TimesNewRoman-BoldItalic	;
212
+/TimesNewRoman-BoldItalic	(tnrbi.pfb)	;
213
+
214
+

+ 163
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.OSF View File

@@ -0,0 +1,163 @@
1
+% fontmap.osf aka Fontmap.OSF1 - Ghostscript fontmap for DEC OSF/1 systems.
2
+%
3
+% UNIX systems from Digital Equipment Corporation are bundled with a license
4
+% for Display PostScript, including certain fonts.  Using their font outlines
5
+% (which on OSF/1 systems are found in /usr/lib/X11/fonts/Type1Adobe)
6
+% improves the visual quality of documents displayed on screen.  To do that,
7
+% use this file as your Fontmap file and add /usr/lib/X11/fonts/Type1Adobe
8
+% as the second argument to GS_LIB_DEFAULT in your makefile
9
+% in your makefile.
10
+%
11
+% This file is Pete Kaiser's original Ultrix file as modified by
12
+% Bjorn S. Nilsson (nilsson@nbi.dk) first for Ultrix 4.3 and then
13
+% for OSF/1 version 1.3.
14
+%
15
+
16
+%/AvantGarde-Book			(AvantGarde-Book)	;
17
+%/AvantGarde-BookOblique		(AvantGarde-BookOblique);
18
+%/AvantGarde-Demi			(AvantGarde-Demi)	;
19
+%/AvantGarde-DemiOblique		(AvantGarde-DemiOblique);
20
+
21
+%/Courier-BoldItalic			/Courier-BoldOblique	;
22
+%/Courier-Italic			/Courier-Oblique	;
23
+
24
+%/Courier				(Courier)		;
25
+%/Courier-Bold				(Courier-Bold)		;
26
+%/Courier-BoldOblique			(Courier-BoldOblique)	;
27
+%/Courier-Oblique			(Courier-Oblique)	;
28
+
29
+%/Helvetica				(Helvetica)		;
30
+%/Helvetica-Bold			(Helvetica-Bold)	;
31
+%/Helvetica-BoldOblique			(Helvetica-BoldOblique)	;
32
+%/Helvetica-Oblique			(Helvetica-Oblique)	;
33
+
34
+%/LubalinGraph-Book			(LubalinGraph-Book)	;
35
+%/LubalinGraph-BookOblique		(LubalinGraph-BookOblique);
36
+%/LubalinGraph-Demi			(LubalinGraph-Demi)	;
37
+%/LubalinGraph-DemiOblique		(LubalinGraph-DemiOblique);
38
+
39
+%/NewCenturySchlbk-Bold			(NewCenturySchlbk-Bold)	;
40
+%/NewCenturySchlbk-BoldItalic		(NewCenturySchlbk-BoldItalic);
41
+%/NewCenturySchlbk-Italic		(NewCenturySchlbk-Italic);
42
+%/NewCenturySchlbk-Roman		(NewCenturySchlbk-Roman);
43
+
44
+%/Souvenir-Demi				(Souvenir-Demi)		;
45
+%/Souvenir-DemiItalic			(Souvenir-DemiItalic)	;
46
+%/Souvenir-Light			(Souvenir-Light)	;
47
+%/Souvenir-LightItalic			(Souvenir-LightItalic)	;
48
+
49
+%/Symbol				(Symbol)		;
50
+
51
+%/Times-Bold				(Times-Bold)		;
52
+%/Times-BoldItalic			(Times-BoldItalic)	;
53
+%/Times-Italic				(Times-Italic)		;
54
+%/Times-Roman				(Times-Roman)		;
55
+
56
+%/ZapfDingbats				(ZapfDingbats)		;
57
+
58
+/AvantGarde-Book		(AvantGarde-Book.pfa)		;
59
+/AvantGarde-BookOblique		(AvantGarde-BookOblique.pfa)	;
60
+/AvantGarde-Demi		(AvantGarde-Demi.pfa)		;
61
+/AvantGarde-DemiOblique		(AvantGarde-DemiOblique.pfa)	;
62
+/Bookman-Demi			(pbkd.gsf)			;
63
+/Bookman-DemiItalic		(pbkdi.gsf)			;
64
+/Bookman-Light			(pbkl.gsf)			;
65
+/Bookman-LightItalic		(pbkli.gsf)			;
66
+/Calligraphic-Hiragana		(fhirw.gsf)			;
67
+/Calligraphic-Katakana		(fkarw.gsf)			;
68
+/CharterBT-Bold			(bchb.gsf)			;
69
+/CharterBT-BoldItalic		(bchbi.gsf)			;
70
+/CharterBT-Italic		(bchri.gsf)			;
71
+/CharterBT-Roman		(bchr.gsf)			;
72
+/Courier			(Courier.pfa)			;
73
+/Courier-Bold			(Courier-Bold.pfa)		;
74
+/Courier-BoldOblique		(Courier-BoldOblique.pfa)	;
75
+/Courier-Oblique		(Courier-Oblique.pfa)		;
76
+/Helvetica			(Helvetica.pfa)			;
77
+/Helvetica-Bold			(Helvetica-Bold.pfa)		;
78
+/Helvetica-BoldOblique		(Helvetica-BoldOblique.pfa)	;
79
+/Helvetica-Oblique		(Helvetica-Oblique.pfa)		;
80
+/Hershey-Gothic-English		(hrger.gsf)			;
81
+/Hershey-Gothic-German		(hrgrr.gsf)			;
82
+/Hershey-Gothic-Italian		(hritr.gsf)			; 
83
+/Hershey-Plain-Duplex		(hrpld.gsf)			;
84
+/Hershey-Plain-Duplex-Italic	(hrpldi.gsf)			;
85
+/Hershey-Plain-Triplex		(hrplt.gsf)			;
86
+/Hershey-Plain-Triplex-Italic	(hrplti.gsf)			;
87
+/Hershey-Script-Complex		(hrscc.gsf)			;
88
+/Hershey-Script-Simplex		(hrscs.gsf)			;
89
+/Hershey-Gothic-English-Bold	(hrgerb.gsf)			;
90
+/Hershey-Gothic-English-Oblique	(hrgero.gsf)			;
91
+/Hershey-Gothic-English-Semibold (hrgerd.gsf)			;
92
+/Hershey-Gothic-German-Bold	(hrgrrb.gsf)			;
93
+/Hershey-Gothic-German-Oblique	(hrgrro.gsf)			;
94
+/Hershey-Gothic-Italian-Bold	(hritrb.gsf)			;
95
+/Hershey-Gothic-Italian-Oblique	(hritro.gsf)			;
96
+/Hershey-Plain-Duplex-Bold	(hrpldb.gsf)			;
97
+/Hershey-Plain-Duplex-Bold-Italic (hrpldbi.gsf)			;
98
+/Hershey-Plain-Triplex-Bold	(hrpltb.gsf)			;
99
+/Hershey-Plain-Triplex-Bold-Italic (hrpltbi.gsf)		;
100
+/Hershey-Script-Complex-Bold	(hrsccb.gsf)			;
101
+/Hershey-Script-Complex-Oblique	(hrscco.gsf)			;
102
+/Hershey-Script-Simplex-Bold	(hrscsb.gsf)			;
103
+/Hershey-Script-Simplex-Oblique	(hrscso.gsf)			;
104
+/Hershey-Greek-Complex		(hrgkc.gsf)			;
105
+/Hershey-Greek-Simplex		(hrgks.gsf)			;
106
+/Hershey-Plain			(hrplr.gsf)			;
107
+/Hershey-Plain-Simplex		(hrpls.gsf)			;
108
+/Hershey-Plain-Bold		(hrplrb.gsf)			;
109
+/Hershey-Plain-Bold-Oblique	(hrplrbo.gsf)			;
110
+/Hershey-Plain-Oblique		(hrplro.gsf)			;
111
+/Hershey-Plain-Simplex-Bold	(hrplsb.gsf)			;
112
+/Hershey-Plain-Simplex-Bold-Oblique (hrplsbo.gsf)		;
113
+/Hershey-Plain-Simplex-Oblique	(hrplso.gsf)			;
114
+/Hershey-Symbol			(hrsy_r.gsf)			;
115
+/LubalinGraph-Book		(LubalinGraph-Book.pfa)		;
116
+/LubalinGraph-BookOblique	(LubalinGraph-BookOblique.pfa)	;
117
+/LubalinGraph-Demi		(LubalinGraph-Demi.pfa)		;
118
+/LubalinGraph-DemiOblique	(LubalinGraph-DemiOblique.pfa)	;
119
+/NewCenturySchlbk-Bold		(NewCenturySchlbk-Bold.pfa)	;
120
+/NewCenturySchlbk-BoldItalic	(NewCenturySchlbk-BoldItalic.pfa) ;
121
+/NewCenturySchlbk-Italic	(NewCenturySchlbk-Italic.pfa)	;
122
+/NewCenturySchlbk-Roman		(NewCenturySchlbk-Roman.pfa)	;
123
+/NimbusRomanNo9L-Regular	(n021003l.gsf)			;
124
+/NimbusSansL-Regular		(n019003l.gsf)			;
125
+/Palatino-Bold			(pplb.gsf)			;
126
+/Palatino-BoldItalic		(pplbi.gsf)			;
127
+/Palatino-Italic		(pplri.gsf)			;
128
+/Palatino-Roman			(pplr.gsf)			;
129
+/Shareware-Cyrillic-Regular	(fcyr.gsf)			;
130
+/Shareware-Cyrillic-Italic	(fcyri.gsf)			;
131
+/Souvenir-Demi			(Souvenir-Demi.pfa)		;
132
+/Souvenir-DemiItalic		(Souvenir-DemiItalic.pfa)	;
133
+/Souvenir-Light			(Souvenir-Light.pfa)		;
134
+/Souvenir-LightItalic		(Souvenir-LightItalic.pfa)	;
135
+/Symbol				(Symbol.pfa)			;
136
+/Times-Bold			(Times-Bold.pfa)		;
137
+/Times-BoldItalic		(Times-BoldItalic.pfa)		;
138
+/Times-Italic			(Times-Italic.pfa)		;
139
+/Times-Roman			(Times-Roman.pfa)		;
140
+/URWAntiquaT-RegularCondensed	(u003043t.gsf)			;
141
+/URWGroteskT-Bold		(u004006t.gsf)			;
142
+/Utopia-Bold			(putb.gsf)			;
143
+/Utopia-BoldItalic		(putbi.gsf)			;
144
+/Utopia-Italic			(putri.gsf)			;
145
+/Utopia-Regular			(putr.gsf)			;
146
+/ZapfChancery			(zcr.gsf)			;
147
+/ZapfChancery-Bold		(zcb.gsf)			;
148
+/ZapfChancery-Oblique		(zcro.gsf)			;
149
+/ZapfDingbats			(ZapfDingbats.pfa)		;
150
+/Cyrillic			/Cyrillic-Regular		;
151
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
152
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
153
+
154
+% BSN additions from original Fontmap file and some more aliases
155
+
156
+/Helvetica-Narrow-Bold		/Helvetica-Narrow	;
157
+/ZapfChancery-MediumItalic	/ZapfChancery-Oblique	;
158
+/Charter-Roman			/CharterBT-Roman	;
159
+/Charter-Italic			/CharterBT-Italic	;
160
+/Charter-Bold			/CharterBT-Bold		;
161
+/Charter-BoldItalic		/CharterBT-BoldItalic	;
162
+/Courier-Italic			/Courier-Oblique	;
163
+/Courier-BoldItalic		/Courier-BoldOblique	;

+ 405
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.SGI View File

@@ -0,0 +1,405 @@
1
+% Copyright (C) 1996, 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.SGI 6300 2005-12-28 19:56:24Z giles $
17
+%
18
+% Fontmap.SGI - standard font catalog for Ghostscript, modified for IRIX 5.3
19
+% with the DPS fonts installed (dps_eoe.sw.dpsfonts).
20
+% by H. Gohel, gohel@acm.org. 1999-09-10
21
+
22
+% ----------------------------------------------------------------
23
+
24
+% This file is a catalog of fonts known to Ghostscript.  Any font
25
+% that is to be loaded automatically when named must be in this catalog,
26
+% except for fonts that Ghostscript finds automatically in directories
27
+% named in the GS_FONTPATH environment variable.
28
+
29
+% Each font has an entry consisting of three items:
30
+%
31
+%	- The name by which the font is known inside Ghostscript
32
+%	(a Ghostscript name preceded by a `/', or a string enclosed
33
+%	in parentheses).  This is used to find the file from which
34
+%	a font of a given name should be loaded.
35
+%
36
+%	- Information depending on whether this is a real font or a
37
+%	font alias:
38
+%
39
+%		- For real fonts, the name of the Ghostscript font
40
+%		file (a Ghostscript string, enclosed in parentheses).
41
+%		The filename should include the extension, which (by
42
+%		convention) is `.gsf'.  `.pfa' and `.pfb' files are
43
+%		also usable as fonts for Ghostscript.
44
+%
45
+%		- For font aliases, the name of the font which should
46
+%		be used when this one is requested, preceded by a
47
+%		`/'.  See the entry for Charter below for an example.
48
+%		Note that an alias name cannot be enclosed in parentheses.
49
+%
50
+%	- At least one space or tab, and a terminating semicolon.
51
+
52
+% Because of limitations in the MS-DOS environment, Ghostscript font
53
+% file names must be no more than 8 characters long, must consist only
54
+% of LOWER CASE letters, digits, and underscores, and must start with a
55
+% letter.  Font names, on the other hand, need only obey the syntax of
56
+% names in the Ghostscript language, which is much more liberal.
57
+
58
+% The following table is actually a Ghostscript data structure.
59
+% If you add new entries, be sure to copy the punctuation accurately;
60
+% in particular, you must leave at least one space or tab between each
61
+% field in the entry.  Also, please read fonts.doc for important information
62
+% about font names.
63
+
64
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
65
+% and other programs that don't include full PostScript interpreters,
66
+% as well as with PostScript interpreters; .gsf fonts are compatible with
67
+% PostScript interpreters, but not with ATM or similar programs.
68
+
69
+% 
70
+%
71
+% Fonts contributed by:
72
+%	URW++ Design and Development Incorporated
73
+%	Poppenbuetteler Bogen 29A
74
+%	D-22399 Hamburg
75
+%	Germany
76
+%	tel. +49 (40) 60 60 50
77
+%	fax +49 (40) 60 60 51 11
78
+%	http://www.urwpp.de
79
+% for distribution under the GNU License and Aladdin Free Public License.
80
+% See the notice at the head of this Fontmap file for licensing terms.
81
+% Each of these fonts is individually covered by the license:
82
+% for licensing purposes, they are not "part of" any larger entity.
83
+% The following notice applies to these fonts:
84
+%
85
+%	Copyright URW Software, Copyright 1994 by URW.
86
+%
87
+
88
+% Actual fonts
89
+
90
+/URWBookmanL-DemiBold	(b018015l.pfb)	;
91
+/URWBookmanL-DemiBoldItal	(b018035l.pfb)	;
92
+/URWBookmanL-Ligh	(b018012l.pfb)	;
93
+/URWBookmanL-LighItal	(b018032l.pfb)	;
94
+
95
+/NimbusMonL-Regu	(n022003l.pfb)	;
96
+/NimbusMonL-ReguObli	(n022023l.pfb)	;
97
+/NimbusMonL-Bold	(n022004l.pfb)	;
98
+/NimbusMonL-BoldObli	(n022024l.pfb)	;
99
+
100
+/URWGothicL-Book	(a010013l.pfb)	;
101
+/URWGothicL-BookObli	(a010033l.pfb)	;
102
+/URWGothicL-Demi	(a010015l.pfb)	;
103
+/URWGothicL-DemiObli	(a010035l.pfb)	;
104
+
105
+/NimbusSanL-Regu	(n019003l.pfb)	;
106
+/NimbusSanL-ReguItal	(n019023l.pfb)	;
107
+/NimbusSanL-Bold	(n019004l.pfb)	;
108
+/NimbusSanL-BoldItal	(n019024l.pfb)	;
109
+
110
+/NimbusSanL-ReguCond	(n019043l.pfb)	;
111
+/NimbusSanL-ReguCondItal	(n019063l.pfb)	;
112
+/NimbusSanL-BoldCond	(n019044l.pfb)	;
113
+/NimbusSanL-BoldCondItal	(n019064l.pfb)	;
114
+
115
+/URWPalladioL-Roma	(p052003l.pfb)	;
116
+/URWPalladioL-Ital	(p052023l.pfb)	;
117
+/URWPalladioL-Bold	(p052004l.pfb)	;
118
+/URWPalladioL-BoldItal	(p052024l.pfb)	;
119
+
120
+/CenturySchL-Roma	(c059013l.pfb)	;
121
+/CenturySchL-Ital	(c059033l.pfb)	;
122
+/CenturySchL-Bold	(c059016l.pfb)	;
123
+/CenturySchL-BoldItal	(c059036l.pfb)	;
124
+
125
+/NimbusRomNo9L-Regu	(n021003l.pfb)	;
126
+/NimbusRomNo9L-ReguItal	(n021023l.pfb)	;
127
+/NimbusRomNo9L-Medi	(n021004l.pfb)	;
128
+/NimbusRomNo9L-MediItal	(n021024l.pfb)	;
129
+
130
+/StandardSymL	(s050000l.pfb)	;
131
+
132
+/URWChanceryL-MediItal	(z003034l.pfb)	;
133
+
134
+/Dingbats	(d050000l.pfb)	;
135
+
136
+% Aliases
137
+% These Adobe fonts are available with DPS on IRIX, so they commented out:
138
+
139
+%/Bookman-Demi			/URWBookmanL-DemiBold	;
140
+%/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
141
+%/Bookman-Light			/URWBookmanL-Ligh	;
142
+%/Bookman-LightItalic		/URWBookmanL-LighItal	;
143
+
144
+%/Courier			/NimbusMonL-Regu	;
145
+%/Courier-Oblique		/NimbusMonL-ReguObli	;
146
+%/Courier-Bold			/NimbusMonL-Bold	;
147
+%/Courier-BoldOblique		/NimbusMonL-BoldObli	;
148
+
149
+%/AvantGarde-Book		/URWGothicL-Book	;
150
+%/AvantGarde-BookOblique		/URWGothicL-BookObli	;
151
+%/AvantGarde-Demi		/URWGothicL-Demi	;
152
+%/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
153
+
154
+%/Helvetica			/NimbusSanL-Regu	;
155
+%/Helvetica-Oblique		/NimbusSanL-ReguItal	;
156
+%/Helvetica-Bold			/NimbusSanL-Bold	;
157
+%/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
158
+
159
+%/Helvetica-Narrow		/NimbusSanL-ReguCond	;
160
+%/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
161
+%/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
162
+%/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
163
+
164
+%/Palatino-Roman			/URWPalladioL-Roma	;
165
+%/Palatino-Italic		/URWPalladioL-Ital	;
166
+%/Palatino-Bold			/URWPalladioL-Bold	;
167
+%/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
168
+
169
+%/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
170
+%/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
171
+%/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
172
+%/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
173
+
174
+%/Times-Roman			/NimbusRomNo9L-Regu	;
175
+%/Times-Italic			/NimbusRomNo9L-ReguItal	;
176
+%/Times-Bold			/NimbusRomNo9L-Medi	;
177
+%/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
178
+
179
+%/Symbol				/StandardSymL	;
180
+
181
+%/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
182
+
183
+%/ZapfDingbats			/Dingbats	;
184
+
185
+% 
186
+%
187
+% Type 1 fonts contributed to the X11R5 distribution.
188
+%
189
+
190
+% The following notice accompanied the Charter fonts.
191
+%
192
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
193
+%
194
+% You are hereby granted permission under all Bitstream propriety rights
195
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
196
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
197
+% for any purpose and without restriction; provided, that this notice is
198
+% left intact on all copies of such fonts and that Bitstream's trademark
199
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
200
+% Type 1 fonts.
201
+%
202
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
203
+
204
+% The Bitstream Charter fonts have different names (CharterBT-
205
+% instead of Charter-), but Ghostscript doesn't care.
206
+/Charter-Roman			(bchr.pfa)	;
207
+/Charter-Italic			(bchri.pfa)	;
208
+/Charter-Bold			(bchb.pfa)	;
209
+/Charter-BoldItalic		(bchbi.pfa)	;
210
+
211
+% The following notice accompanied the Utopia font:
212
+%
213
+%   Permission to use, reproduce, display and distribute the listed
214
+%   typefaces is hereby granted, provided that the Adobe Copyright notice
215
+%   appears in all whole and partial copies of the software and that the
216
+%   following trademark symbol and attribution appear in all unmodified
217
+%   copies of the software:
218
+%
219
+%           Copyright (c) 1989 Adobe Systems Incorporated
220
+%           Utopia (R)
221
+%           Utopia is a registered trademark of Adobe Systems Incorporated
222
+%
223
+%   The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
224
+%   Metric files) donated are:
225
+%
226
+%           Utopia Regular
227
+%           Utopia Italic
228
+%           Utopia Bold
229
+%           Utopia Bold Italic
230
+
231
+% The original Utopia files are available with IRIX and DPS so need
232
+% for aliases, HJG.
233
+
234
+%/Utopia-Regular		(putr.pfa)	;
235
+%/Utopia-Italic		(putri.pfa)	;
236
+%/Utopia-Bold		(putb.pfa)	;
237
+%/Utopia-BoldItalic	(putbi.pfa)	;
238
+
239
+% 
240
+%
241
+% Fonts contributed by URW GmbH for distribution under the GNU License.
242
+% The following notice accompanied these fonts:
243
+%
244
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
245
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
246
+%
247
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
248
+%
249
+% This program is free software; you can redistribute it and/or modify
250
+% it under the terms of the GNU General Public License as published by
251
+% the Free Software Foundation; either version 2 of the License, or
252
+% (at your option) later version.
253
+%
254
+% This program is distributed in the hope that it will be useful,
255
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
256
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
257
+% See the GNU General Public License for more details.
258
+%
259
+% You should have received a copy of the GNU General Public License
260
+% along with this program; if not, write to the Free Software
261
+% Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
262
+%
263
+% Address:
264
+% URW GmbH
265
+% PC Support
266
+% Harksheider Strasse 102
267
+% 2000 Hamburg 65
268
+% Germany
269
+% Phone: +49 40 60 60 50       (Reception)
270
+% Phone: +49 40 60 60 52 30   (PC Support)
271
+% Fax    : +49 40 60 60 52 52
272
+%
273
+
274
+/URWAntiquaT-RegularCondensed	(u003043t.gsf)	;
275
+/URWGroteskT-Bold		(u004006t.gsf)	;
276
+
277
+% 
278
+%
279
+% Shareware Kana fonts.  These are subject to the following notice:
280
+%
281
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
282
+% granted to freely distribute them in entirety along with this statement.
283
+% This is shareware. If you decide to use these fonts please contribute
284
+% $10 US to help support further freeware and shareware software development.
285
+% Questions and comments may be sent to:
286
+%
287
+% hartig@fsl.noaa.gov
288
+% khartig@nyx.cs.du.edu
289
+%
290
+% Kevin Hartig
291
+% 1126 Collyer Street
292
+% Longmont, CO 80501 USA
293
+% 
294
+% copyright 1993.
295
+
296
+% Hiragana and Katakana fonts.  The character names are inappropriate,
297
+% and the encoding is probably not related to any known standard.
298
+
299
+/Calligraphic-Hiragana		(fhirw.gsf)	;
300
+/Calligraphic-Katakana		(fkarw.gsf)	;
301
+
302
+% 
303
+%
304
+% Public-domain fonts.  These have no copyright, and are of unknown quality.
305
+
306
+% Cyrillic fonts.  The character names are inappropriate,
307
+% and the encoding is probably not related to any known standard.
308
+
309
+/Shareware-Cyrillic-Regular	(fcyr.gsf)	;
310
+/Shareware-Cyrillic-Italic	(fcyri.gsf)	;
311
+
312
+% Aliases
313
+/Cyrillic			/Cyrillic-Regular	;
314
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
315
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
316
+
317
+% 
318
+%
319
+% Fonts converted from Hershey outlines.  These are constructed and
320
+% maintained manually.  These are also in the public domain.
321
+%
322
+% The suggested UniqueID's and filenames are constructed differently for
323
+% these than for the ones above, because of the strange way that the Hershey
324
+% fonts were constructed.  The scheme for these looks like:
325
+%
326
+% 42TTXY0
327
+%
328
+% TT = typeface, X = ``class'', Y = variation
329
+%
330
+% The typeface names and numbers are listed in fonts.mak.
331
+%
332
+% class:
333
+% 0 = normal			= r
334
+% 1 = simplex			= s
335
+% 2 = complex			= c
336
+% 3 = triplex			= t
337
+% 4 = duplex			= d
338
+%
339
+% variation:
340
+% 0 = normal			(omitted)
341
+% 1 = oblique			= o
342
+% 2 = italic			= i
343
+% 3 = bold			= b
344
+% 4 = bold oblique		= bo
345
+% 5 = bold italic		= bi
346
+%
347
+
348
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
349
+% accents, accented characters, and various other non-alphabetics
350
+% to the original Hershey fonts.  These are "freeware", not to be sold.
351
+
352
+/Hershey-Gothic-English		(hrger.pfa)	;	% 5066533
353
+/Hershey-Gothic-German		(hrgrr.pfa)	;
354
+/Hershey-Gothic-Italian		(hritr.pfa)	; 
355
+
356
+/Hershey-Plain-Duplex		(hrpld.pfa)	;
357
+/Hershey-Plain-Duplex-Italic	(hrpldi.pfa)	;
358
+/Hershey-Plain-Triplex		(hrplt.pfa)	;
359
+/Hershey-Plain-Triplex-Italic	(hrplti.pfa)	;
360
+
361
+/Hershey-Script-Complex		(hrscc.pfa)	;
362
+/Hershey-Script-Simplex		(hrscs.pfa)	;	% 5066541
363
+
364
+% Fonts created algorithmically from the above.
365
+
366
+/Hershey-Gothic-English-Bold		(hrgerb.gsf)	;	% 5066542
367
+/Hershey-Gothic-English-Oblique		(hrgero.gsf)	;
368
+/Hershey-Gothic-English-SemiBold	(hrgerd.gsf)	;
369
+/Hershey-Gothic-German-Bold		(hrgrrb.gsf)	;
370
+/Hershey-Gothic-German-Oblique		(hrgrro.gsf)	;
371
+/Hershey-Gothic-Italian-Bold		(hritrb.gsf)	;
372
+/Hershey-Gothic-Italian-Oblique		(hritro.gsf)	;
373
+
374
+/Hershey-Plain-Duplex-Bold		(hrpldb.gsf)	;
375
+/Hershey-Plain-Duplex-Bold-Italic	(hrpldbi.gsf)	;
376
+/Hershey-Plain-Triplex-Bold		(hrpltb.gsf)	;
377
+/Hershey-Plain-Triplex-Bold-Italic	(hrpltbi.gsf)	;
378
+
379
+/Hershey-Script-Complex-Bold		(hrsccb.gsf)	;
380
+/Hershey-Script-Complex-Oblique		(hrscco.gsf)	;
381
+/Hershey-Script-Simplex-Bold		(hrscsb.gsf)	;
382
+/Hershey-Script-Simplex-Oblique		(hrscso.gsf)	;	% 5066556
383
+
384
+% Fonts consisting only of characters from the original Hershey
385
+% distribution.  These are Type 3 fonts.
386
+
387
+/Hershey-Greek-Complex			(hrgkc.gsf)	;	% 5066557
388
+/Hershey-Greek-Simplex			(hrgks.gsf)	;
389
+
390
+/Hershey-Plain				(hrplr.gsf)	;
391
+/Hershey-Plain-Simplex			(hrpls.gsf)	;	% 5066560
392
+
393
+% Fonts created algorithmically from the above.
394
+
395
+/Hershey-Plain-Bold			(hrplrb.gsf)	;	% 5066561
396
+/Hershey-Plain-Bold-Oblique		(hrplrbo.gsf)	;
397
+/Hershey-Plain-Oblique			(hrplro.gsf)	;
398
+/Hershey-Plain-Simplex-Bold		(hrplsb.gsf)	;
399
+/Hershey-Plain-Simplex-Bold-Oblique	(hrplsbo.gsf)	;
400
+/Hershey-Plain-Simplex-Oblique		(hrplso.gsf)	;	% 5066566
401
+
402
+% This font, and only this font among the Hershey fonts, uses
403
+% the SymbolEncoding.
404
+
405
+/Hershey-Symbol				(hrsyr.gsf)	;	% 5066567

+ 486
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.Sol View File

@@ -0,0 +1,486 @@
1
+% Copyright (C) 1996, 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.Sol 6300 2005-12-28 19:56:24Z giles $
17
+% Fontmap.Solaris - Ghostscript Fontmap for Solaris 2.3 and above
18
+% ===============================================================
19
+%
20
+% The Solaris 2.3 (and above) operating system from Sun Microsystems comes with
21
+% Display Postscript (DPS), including certain Type1 and Type3 PostScript fonts.
22
+% Using these fonts instead of the default Ghostscript fonts greatly improves
23
+% the visual quality of Ghostscript rendered documents, especially at larger
24
+% font sizes. You should definately use these fonts if you have Solaris 2.3 or
25
+% above.
26
+%
27
+% To use the Solaris 2 DPS fonts, simply copy this file (Fontmap.Solaris) to
28
+%
29
+%   /usr/local/lib/Ghostscript/VERSION/Fontmap
30
+%   (where VERSION is the version number of Ghostscript, eg: 3.33)
31
+%
32
+% and set the environment variable GS_LIB as follows:
33
+%
34
+%   GS_LIB=/usr/openwin/lib/X11/fonts/Type1:/usr/openwin/lib/X11/fonts/Type3
35
+%   export GS_LIB
36
+%
37
+% You can use /usr/openwin/lib/fonts/Type1/outline instead if you like, it
38
+% makes no difference (the files in /usr/openwin/lib/fonts/Type1 are symlinks
39
+% into /usr/openwin/lib/fonts/Type1/outline).
40
+%
41
+% Instead of setting GS_LIB, you could add the above directories to
42
+% GS_LIB_DEFAULT in your makefile before building Ghostscript.
43
+%
44
+%
45
+% IMPORTANT NOTE
46
+% ==============
47
+%
48
+% Note that simply setting GS_FONTPATH may not work, because for some reason
49
+% some versions of gs can't seem to find any fonts in
50
+% /usr/openwin/lib/X11/fonts/Type1/outline.
51
+% It says: "15 files, 15 scanned, 0 new fonts".
52
+%
53
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
54
+
55
+% ----------------------------------------------------------------
56
+
57
+% This file is a catalog of fonts known to Ghostscript.  Any font
58
+% that is to be loaded automatically when named must be in this catalog,
59
+% except for fonts that Ghostscript finds automatically in directories
60
+% named in the GS_FONTPATH environment variable.
61
+
62
+% Each font has an entry consisting of three items:
63
+%
64
+%	- The name by which the font is known inside Ghostscript
65
+%	(a Ghostscript name preceded by a `/', or a string enclosed
66
+%	in parentheses).  This is used to find the file from which
67
+%	a font of a given name should be loaded.
68
+%
69
+%	- Information depending on whether this is a real font or a
70
+%	font alias:
71
+%
72
+%		- For real fonts, the name of the Ghostscript font
73
+%		file (a Ghostscript string, enclosed in parentheses).
74
+%		The filename should include the extension, which (by
75
+%		convention) is `.gsf'.  `.pfa' and `.pfb' files are
76
+%		also usable as fonts for Ghostscript.
77
+%
78
+%		- For font aliases, the name of the font which should
79
+%		be used when this one is requested, preceded by a
80
+%		`/'.  See the entry for Charter below for an example.
81
+%		Note that an alias name cannot be enclosed in parentheses.
82
+%
83
+%	- At least one space or tab, and a terminating semicolon.
84
+
85
+% Because of limitations in the MS-DOS environment, Ghostscript font
86
+% file names must be no more than 8 characters long, must consist only
87
+% of LOWER CASE letters, digits, and underscores, and must start with a
88
+% letter.  Font names, on the other hand, need only obey the syntax of
89
+% names in the Ghostscript language, which is much more liberal.
90
+
91
+% The following table is actually a Ghostscript data structure.
92
+% If you add new entries, be sure to copy the punctuation accurately;
93
+% in particular, you must leave at least one space or tab between each
94
+% field in the entry.  Also, please read fonts.doc for important information
95
+% about font names.
96
+
97
+% Note that .pfa and .pfb fonts are compatible with Adobe Type Manager
98
+% and other programs that don't include full PostScript interpreters,
99
+% as well as with PostScript interpreters; .gsf fonts are compatible with
100
+% PostScript interpreters, but not with ATM or similar programs.
101
+
102
+% 
103
+%
104
+% Fonts contributed by:
105
+%	URW++ Design and Development Incorporated
106
+%	Poppenbuetteler Bogen 29A
107
+%	D-22399 Hamburg
108
+%	Germany
109
+%	tel. +49 (40) 60 60 50
110
+%	fax +49 (40) 60 60 51 11
111
+%	http://www.urwpp.de
112
+% for distribution under the GNU License and Aladdin Free Public License.
113
+% See the notice at the head of this Fontmap file for licensing terms.
114
+% Each of these fonts is individually covered by the license:
115
+% for licensing purposes, they are not "part of" any larger entity.
116
+% The following notice applies to these fonts:
117
+%
118
+%	Copyright URW Software, Copyright 1994 by URW.
119
+%
120
+
121
+% Actual fonts
122
+
123
+/URWBookmanL-DemiBold	(b018015l.pfb)	;
124
+/URWBookmanL-DemiBoldItal	(b018035l.pfb)	;
125
+/URWBookmanL-Ligh	(b018012l.pfb)	;
126
+/URWBookmanL-LighItal	(b018032l.pfb)	;
127
+
128
+/NimbusMonL-Regu	(n022003l.pfb)	;
129
+/NimbusMonL-ReguObli	(n022023l.pfb)	;
130
+/NimbusMonL-Bold	(n022004l.pfb)	;
131
+/NimbusMonL-BoldObli	(n022024l.pfb)	;
132
+
133
+/URWGothicL-Book	(a010013l.pfb)	;
134
+/URWGothicL-BookObli	(a010033l.pfb)	;
135
+/URWGothicL-Demi	(a010015l.pfb)	;
136
+/URWGothicL-DemiObli	(a010035l.pfb)	;
137
+
138
+/NimbusSanL-Regu	(n019003l.pfb)	;
139
+/NimbusSanL-ReguItal	(n019023l.pfb)	;
140
+/NimbusSanL-Bold	(n019004l.pfb)	;
141
+/NimbusSanL-BoldItal	(n019024l.pfb)	;
142
+
143
+/NimbusSanL-ReguCond	(n019043l.pfb)	;
144
+/NimbusSanL-ReguCondItal	(n019063l.pfb)	;
145
+/NimbusSanL-BoldCond	(n019044l.pfb)	;
146
+/NimbusSanL-BoldCondItal	(n019064l.pfb)	;
147
+
148
+/URWPalladioL-Roma	(p052003l.pfb)	;
149
+/URWPalladioL-Ital	(p052023l.pfb)	;
150
+/URWPalladioL-Bold	(p052004l.pfb)	;
151
+/URWPalladioL-BoldItal	(p052024l.pfb)	;
152
+
153
+/CenturySchL-Roma	(c059013l.pfb)	;
154
+/CenturySchL-Ital	(c059033l.pfb)	;
155
+/CenturySchL-Bold	(c059016l.pfb)	;
156
+/CenturySchL-BoldItal	(c059036l.pfb)	;
157
+
158
+/NimbusRomNo9L-Regu	(n021003l.pfb)	;
159
+/NimbusRomNo9L-ReguItal	(n021023l.pfb)	;
160
+/NimbusRomNo9L-Medi	(n021004l.pfb)	;
161
+/NimbusRomNo9L-MediItal	(n021024l.pfb)	;
162
+
163
+/StandardSymL	(s050000l.pfb)	;
164
+
165
+/URWChanceryL-MediItal	(z003034l.pfb)	;
166
+
167
+/Dingbats	(d050000l.pfb)	;
168
+
169
+% Aliases
170
+
171
+/Bookman-Demi			/URWBookmanL-DemiBold	;
172
+/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
173
+/Bookman-Light			/URWBookmanL-Ligh	;
174
+/Bookman-LightItalic		/URWBookmanL-LighItal	;
175
+
176
+/Courier			/NimbusMonL-Regu	;
177
+/Courier-Oblique		/NimbusMonL-ReguObli	;
178
+/Courier-Bold			/NimbusMonL-Bold	;
179
+/Courier-BoldOblique		/NimbusMonL-BoldObli	;
180
+
181
+/AvantGarde-Book		/URWGothicL-Book	;
182
+/AvantGarde-BookOblique		/URWGothicL-BookObli	;
183
+/AvantGarde-Demi		/URWGothicL-Demi	;
184
+/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
185
+
186
+% Solaris 2 DPS has Helvetica as a Type1 font.
187
+%/Helvetica			/NimbusSanL-Regu	;
188
+%/Helvetica-Oblique		/NimbusSanL-ReguItal	;
189
+%/Helvetica-Bold			/NimbusSanL-Bold	;
190
+%/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
191
+
192
+/Helvetica-Narrow		/NimbusSanL-ReguCond	;
193
+/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
194
+/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
195
+/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
196
+
197
+/Palatino-Roman			/URWPalladioL-Roma	;
198
+/Palatino-Italic		/URWPalladioL-Ital	;
199
+/Palatino-Bold			/URWPalladioL-Bold	;
200
+/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
201
+
202
+/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
203
+/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
204
+/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
205
+/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
206
+
207
+% Solaris 2 DPS has Times as a Type1 font.
208
+%/Times-Roman			/NimbusRomNo9L-Regu	;
209
+%/Times-Italic			/NimbusRomNo9L-ReguItal	;
210
+%/Times-Bold			/NimbusRomNo9L-Medi	;
211
+%/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
212
+
213
+% Solaris 2 DPS has Symbol as a Type1 font.
214
+%/Symbol				/StandardSymL	;
215
+
216
+/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
217
+
218
+/ZapfDingbats			/Dingbats	;
219
+
220
+% 
221
+%
222
+% Type 1 fonts contributed to the X11R5 distribution.
223
+%
224
+
225
+% The following notice accompanied the Charter fonts.
226
+%
227
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
228
+%
229
+% You are hereby granted permission under all Bitstream propriety rights
230
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
231
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
232
+% for any purpose and without restriction; provided, that this notice is
233
+% left intact on all copies of such fonts and that Bitstream's trademark
234
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
235
+% Type 1 fonts.
236
+%
237
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
238
+
239
+/CharterBT-Roman		(bchr.pfa)	;
240
+/CharterBT-Italic		(bchri.pfa)	;
241
+/CharterBT-Bold			(bchb.pfa)	;
242
+/CharterBT-BoldItalic		(bchbi.pfa)	;
243
+
244
+% Aliases
245
+
246
+/Charter-Roman			/CharterBT-Roman	;
247
+/Charter-Italic			/CharterBT-Italic	;
248
+/Charter-Bold			/CharterBT-Bold		;
249
+/Charter-BoldItalic		/CharterBT-BoldItalic	;
250
+
251
+% The following notice accompanied the Utopia font:
252
+%
253
+%   Permission to use, reproduce, display and distribute the listed
254
+%   typefaces is hereby granted, provided that the Adobe Copyright notice
255
+%   appears in all whole and partial copies of the software and that the
256
+%   following trademark symbol and attribution appear in all unmodified
257
+%   copies of the software:
258
+%
259
+%           Copyright (c) 1989 Adobe Systems Incorporated
260
+%           Utopia (R)
261
+%           Utopia is a registered trademark of Adobe Systems Incorporated
262
+%
263
+%   The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
264
+%   Metric files) donated are:
265
+%
266
+%           Utopia Regular
267
+%           Utopia Italic
268
+%           Utopia Bold
269
+%           Utopia Bold Italic
270
+
271
+/Utopia-Regular		(putr.pfa)	;
272
+/Utopia-Italic		(putri.pfa)	;
273
+/Utopia-Bold		(putb.pfa)	;
274
+/Utopia-BoldItalic	(putbi.pfa)	;
275
+
276
+% 
277
+%
278
+% Fonts contributed by URW GmbH for distribution under the GNU License.
279
+% The following notice accompanied these fonts:
280
+%
281
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
282
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
283
+%
284
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
285
+%
286
+% This program is free software; you can redistribute it and/or modify
287
+% it under the terms of the GNU General Public License as published by
288
+% the Free Software Foundation; either version 2 of the License, or
289
+% (at your option) later version.
290
+%
291
+% This program is distributed in the hope that it will be useful,
292
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
293
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
294
+% See the GNU General Public License for more details.
295
+%
296
+% You should have received a copy of the GNU General Public License
297
+% along with this program; if not, write to the Free Software
298
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
299
+%
300
+% Address:
301
+% URW GmbH
302
+% PC Support
303
+% Harksheider Strasse 102
304
+% 2000 Hamburg 65
305
+% Germany
306
+% Phone: +49 40 60 60 50       (Reception)
307
+% Phone: +49 40 60 60 52 30   (PC Support)
308
+% Fax    : +49 40 60 60 52 52
309
+%
310
+
311
+/URWAntiquaT-RegularCondensed	(u003043t.gsf)	;
312
+/URWGroteskT-Bold		(u004006t.gsf)	;
313
+
314
+% 
315
+%
316
+% Shareware Kana fonts.  These are subject to the following notice:
317
+%
318
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
319
+% granted to freely distribute them in entirety along with this statement.
320
+% This is shareware. If you decide to use these fonts please contribute
321
+% $10 US to help support further freeware and shareware software development.
322
+% Questions and comments may be sent to:
323
+%
324
+% hartig@fsl.noaa.gov
325
+% khartig@nyx.cs.du.edu
326
+%
327
+% Kevin Hartig
328
+% 1126 Collyer Street
329
+% Longmont, CO 80501 USA
330
+% 
331
+% copyright 1993.
332
+
333
+% Hiragana and Katakana fonts.  The character names are inappropriate,
334
+% and the encoding is probably not related to any known standard.
335
+
336
+/Calligraphic-Hiragana		(fhirw.gsf)	;
337
+/Calligraphic-Katakana		(fkarw.gsf)	;
338
+
339
+% 
340
+%
341
+% Public-domain fonts.  These have no copyright, and are of unknown quality.
342
+
343
+% Cyrillic fonts.  The character names are inappropriate,
344
+% and the encoding is probably not related to any known standard.
345
+
346
+/Shareware-Cyrillic-Regular	(fcyr.gsf)	;
347
+/Shareware-Cyrillic-Italic	(fcyri.gsf)	;
348
+
349
+% Aliases
350
+/Cyrillic			/Cyrillic-Regular	;
351
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
352
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
353
+
354
+% 
355
+%
356
+% Fonts converted from Hershey outlines.  These are constructed and
357
+% maintained manually.  These are also in the public domain.
358
+%
359
+% The suggested UniqueID's and filenames are constructed differently for
360
+% these than for the ones above, because of the strange way that the Hershey
361
+% fonts were constructed.  The scheme for these looks like:
362
+%
363
+% 42TTXY0
364
+%
365
+% TT = typeface, X = ``class'', Y = variation
366
+%
367
+% The typeface names and numbers are listed in fonts.mak.
368
+%
369
+% class:
370
+% 0 = normal			= r
371
+% 1 = simplex			= s
372
+% 2 = complex			= c
373
+% 3 = triplex			= t
374
+% 4 = duplex			= d
375
+%
376
+% variation:
377
+% 0 = normal			(omitted)
378
+% 1 = oblique			= o
379
+% 2 = italic			= i
380
+% 3 = bold			= b
381
+% 4 = bold oblique		= bo
382
+% 5 = bold italic		= bi
383
+%
384
+
385
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
386
+% accents, accented characters, and various other non-alphabetics
387
+% to the original Hershey fonts.  These are "freeware", not to be sold.
388
+
389
+/Hershey-Gothic-English		(hrger.pfa)	;	% 5066533
390
+/Hershey-Gothic-German		(hrgrr.pfa)	;
391
+/Hershey-Gothic-Italian		(hritr.pfa)	; 
392
+
393
+/Hershey-Plain-Duplex		(hrpld.pfa)	;
394
+/Hershey-Plain-Duplex-Italic	(hrpldi.pfa)	;
395
+/Hershey-Plain-Triplex		(hrplt.pfa)	;
396
+/Hershey-Plain-Triplex-Italic	(hrplti.pfa)	;
397
+
398
+/Hershey-Script-Complex		(hrscc.pfa)	;
399
+/Hershey-Script-Simplex		(hrscs.pfa)	;	% 5066541
400
+
401
+% Fonts created algorithmically from the above.
402
+
403
+/Hershey-Gothic-English-Bold		(hrgerb.gsf)	;	% 5066542
404
+/Hershey-Gothic-English-Oblique		(hrgero.gsf)	;
405
+/Hershey-Gothic-English-SemiBold	(hrgerd.gsf)	;
406
+/Hershey-Gothic-German-Bold		(hrgrrb.gsf)	;
407
+/Hershey-Gothic-German-Oblique		(hrgrro.gsf)	;
408
+/Hershey-Gothic-Italian-Bold		(hritrb.gsf)	;
409
+/Hershey-Gothic-Italian-Oblique		(hritro.gsf)	;
410
+
411
+/Hershey-Plain-Duplex-Bold		(hrpldb.gsf)	;
412
+/Hershey-Plain-Duplex-Bold-Italic	(hrpldbi.gsf)	;
413
+/Hershey-Plain-Triplex-Bold		(hrpltb.gsf)	;
414
+/Hershey-Plain-Triplex-Bold-Italic	(hrpltbi.gsf)	;
415
+
416
+/Hershey-Script-Complex-Bold		(hrsccb.gsf)	;
417
+/Hershey-Script-Complex-Oblique		(hrscco.gsf)	;
418
+/Hershey-Script-Simplex-Bold		(hrscsb.gsf)	;
419
+/Hershey-Script-Simplex-Oblique		(hrscso.gsf)	;	% 5066556
420
+
421
+% Fonts consisting only of characters from the original Hershey
422
+% distribution.  These are Type 3 fonts.
423
+
424
+/Hershey-Greek-Complex			(hrgkc.gsf)	;	% 5066557
425
+/Hershey-Greek-Simplex			(hrgks.gsf)	;
426
+
427
+/Hershey-Plain				(hrplr.gsf)	;
428
+/Hershey-Plain-Simplex			(hrpls.gsf)	;	% 5066560
429
+
430
+% Fonts created algorithmically from the above.
431
+
432
+/Hershey-Plain-Bold			(hrplrb.gsf)	;	% 5066561
433
+/Hershey-Plain-Bold-Oblique		(hrplrbo.gsf)	;
434
+/Hershey-Plain-Oblique			(hrplro.gsf)	;
435
+/Hershey-Plain-Simplex-Bold		(hrplsb.gsf)	;
436
+/Hershey-Plain-Simplex-Bold-Oblique	(hrplsbo.gsf)	;
437
+/Hershey-Plain-Simplex-Oblique		(hrplso.gsf)	;	% 5066566
438
+
439
+% This font, and only this font among the Hershey fonts, uses
440
+% the SymbolEncoding.
441
+
442
+/Hershey-Symbol				(hrsyr.gsf)	;	% 5066567
443
+% 
444
+%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
445
+%
446
+%  Solaris 2 Display PostScript Type1 and Type3 fonts...
447
+%
448
+
449
+/Helvetica			(Helvetica.pfa)			;
450
+/Helvetica-Bold			(Helvetica-Bold.pfa)		;
451
+/Helvetica-BoldOblique		(Helvetica-BoldOblique.pfa)	;
452
+/Helvetica-Oblique		(Helvetica-Oblique.pfa)		;
453
+
454
+/Symbol				(Symbol.pfa)			;
455
+/SymbolSet			/Symbol				;
456
+
457
+/Times-Bold			(Times-Bold.pfa)		;
458
+/Times-BoldItalic		(Times-BoldItalic.pfa)		;
459
+/Times-Italic			(Times-Italic.pfa)		;
460
+/Times-Roman			(Times-Roman.pfa)		;
461
+/TimesNewRoman			/Times-Roman			;
462
+/TimesNewRoman-Bold		/Times-Bold			;
463
+/TimesNewRoman-BoldItalic	/Times-BoldItalic		;
464
+/TimesNewRoman-Italic		/Times-Italic			;
465
+
466
+/Dijkstra			(Dijkstra.ps)			;
467
+
468
+/Hershey-Cyrillic		(HrshCyr.ps)			;
469
+
470
+/Hershey-Gothic			(HrshGoth.ps)			;
471
+
472
+/Hershey-Greek			(HrshGrk.ps)			;
473
+/Hershey-Greek-Narrow		(HrshGrkN.ps)			;
474
+/Hershey-Greekp			(HrshGrkp.ps)			;
475
+
476
+/Hershey-Italic			(HrshI.ps)			;
477
+/Hershey-Italic-Narrow		(HrshIN.ps)			;
478
+/Hershey-Italic-Wide		(HrshIW.ps)			;
479
+/Hershey-Roman			(HrshRom.ps)			;
480
+/Hershey-Roman-Narrow		(HrshRomN.ps)			;
481
+/Hershey-Roman-Wide		(HrshRomW.ps)			;
482
+/Hershey-Romand			(HrshRomd.ps)			;
483
+/Hershey-Romanp			(HrshRomp.ps)			;
484
+
485
+/Hershey-Script			(HrshScr.ps)			;
486
+/Hershey-Script-Narrow		(HrshScrN.ps)			;

+ 146
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.Ult View File

@@ -0,0 +1,146 @@
1
+%    Copyright (C) 1990, 1995, 1999 Aladdin Enterprises.  All rights reserved.
2
+%
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: Fontmap.Ult 6300 2005-12-28 19:56:24Z giles $
17
+% Fontmap.Ult is derived from the standard Fontmap file distributed with
18
+% ghostscript; for credits and sources see that file.  The modifications here
19
+% are valid for ULTRIX 4.3, and consist of defining some fonts and font
20
+% aliases as the licensed fontfiles included in ULTRIX for use on ULTRIX
21
+% workstations, which give better quality than the free fontfiles available
22
+% for ghostscript.  Under ULTRIX 4.3 the licensed fontfiles are found in
23
+%
24
+%	/usr/lib/DPS/outline/decwin
25
+%
26
+% so that directory must either be built into ghostscript by redefining
27
+% GS_LIB_DEFAULT when ghostscript is compiled, or else by defining an
28
+% environmental variable GS_LIB_DEFAULT, which contains it as an element of
29
+% the path, when running ghostscript.  For instance, under the KornShell
30
+%
31
+%	GS_LIB_DEFAULT=/usr/gs:/usr/lib/DPS/outline/decwin:/usr/gs/fonts
32
+%	export GS_LIB_DEFAULT
33
+%
34
+% Peter Kaiser (kaiser@acm.org) 27 January 1995
35
+% Updated by L. Peter Deutsch (ghost@aladdin.com) 5 January 1999
36
+%   to include correct aliasing for the Bitstream Charter fonts
37
+
38
+/AvantGarde-Book			(AvantGarde-Book)		;
39
+/AvantGarde-BookOblique			(AvantGarde-BookOblique)	;
40
+/AvantGarde-Demi			(AvantGarde-Demi)		;
41
+/AvantGarde-DemiOblique			(AvantGarde-DemiOblique)	;
42
+/Courier				(Courier)			;
43
+/Courier-Bold				(Courier-Bold)			;
44
+/Courier-BoldOblique			(Courier-BoldOblique)		;
45
+/Courier-Oblique			(Courier-Oblique)		;
46
+/Helvetica				(Helvetica)			;
47
+/Helvetica-Bold				(Helvetica-Bold)		;
48
+/Helvetica-BoldOblique			(Helvetica-BoldOblique)		;
49
+/Helvetica-Oblique			(Helvetica-Oblique)		;
50
+/LubalinGraph-Book			(LubalinGraph-Book)		;
51
+/LubalinGraph-BookOblique		(LubalinGraph-BookOblique)	;
52
+/LubalinGraph-Demi			(LubalinGraph-Demi)		;
53
+/LubalinGraph-DemiOblique		(LubalinGraph-DemiOblique)	;
54
+/NewCenturySchlbk-Bold			(NewCenturySchlbk-Bold)		;
55
+/NewCenturySchlbk-BoldItalic		(NewCenturySchlbk-BoldItalic)	;
56
+/NewCenturySchlbk-Italic		(NewCenturySchlbk-Italic)	;
57
+/NewCenturySchlbk-Roman			(NewCenturySchlbk-Roman)	;
58
+/Souvenir-Demi				(Souvenir-Demi)			;
59
+/Souvenir-DemiItalic			(Souvenir-DemiItalic)		;
60
+/Souvenir-Light				(Souvenir-Light)		;
61
+/Souvenir-LightItalic			(Souvenir-LightItalic)		;
62
+/Symbol					(Symbol)			;
63
+/Times-Bold				(Times-Bold)			;
64
+/Times-BoldItalic			(Times-BoldItalic)		;
65
+/Times-Italic				(Times-Italic)			;
66
+/Times-Roman				(Times-Roman)			;
67
+
68
+% Fonts distributed as part of ghostscript
69
+
70
+/Bookman-Demi				(pbkd.gsf)	;
71
+/Bookman-DemiItalic			(pbkdi.gsf)	;
72
+/Bookman-Light				(pbkl.gsf)	;
73
+/Bookman-LightItalic			(pbkli.gsf)	;
74
+/Calligraphic-Hiragana			(fhirw.gsf)	;
75
+/Calligraphic-Katakana			(fkarw.gsf)	;
76
+/CharterBT-Bold				(bchb.pfa)	;
77
+/CharterBT-BoldItalic			(bchbi.pfa)	;
78
+/CharterBT-Italic			(bchri.pfa)	;
79
+/CharterBT-Roman			(bchr.pfa)	;
80
+/Hershey-Gothic-English			(hrger.pfa)	;
81
+/Hershey-Gothic-English-Bold		(hrgerb.gsf)	;
82
+/Hershey-Gothic-English-Oblique		(hrgero.gsf)	;
83
+/Hershey-Gothic-English-SemiBold	(hrgerd.gsf)	;
84
+/Hershey-Gothic-German			(hrgrr.pfa)	;
85
+/Hershey-Gothic-German-Bold		(hrgrrb.gsf)	;
86
+/Hershey-Gothic-German-Oblique		(hrgrro.gsf)	;
87
+/Hershey-Gothic-Italian			(hritr.pfa)	;
88
+/Hershey-Gothic-Italian-Bold		(hritrb.gsf)	;
89
+/Hershey-Gothic-Italian-Oblique		(hritro.gsf)	;
90
+/Hershey-Greek-Complex			(hrgkc.gsf)	;
91
+/Hershey-Greek-Simplex			(hrgks.gsf)	;
92
+/Hershey-Plain				(hrplr.gsf)	;
93
+/Hershey-Plain-Bold			(hrplrb.gsf)	;
94
+/Hershey-Plain-Bold-Oblique		(hrplrbo.gsf)	;
95
+/Hershey-Plain-Duplex			(hrpld.pfa)	;
96
+/Hershey-Plain-Duplex-Bold		(hrpldb.gsf)	;
97
+/Hershey-Plain-Duplex-Bold-Italic	(hrpldbi.gsf)	;
98
+/Hershey-Plain-Duplex-Italic		(hrpldi.pfa)	;
99
+/Hershey-Plain-Oblique			(hrplro.gsf)	;
100
+/Hershey-Plain-Simplex			(hrpls.gsf)	;
101
+/Hershey-Plain-Simplex-Bold		(hrplsb.gsf)	;
102
+/Hershey-Plain-Simplex-Bold-Oblique	(hrplsbo.gsf)	;
103
+/Hershey-Plain-Simplex-Oblique		(hrplso.gsf)	;
104
+/Hershey-Plain-Triplex			(hrplt.pfa)	;
105
+/Hershey-Plain-Triplex-Bold		(hrpltb.gsf)	;
106
+/Hershey-Plain-Triplex-Bold-Italic	(hrpltbi.gsf)	;
107
+/Hershey-Plain-Triplex-Italic		(hrplti.pfa)	;
108
+/Hershey-Script-Complex			(hrscc.pfa)	;
109
+/Hershey-Script-Complex-Bold		(hrsccb.gsf)	;
110
+/Hershey-Script-Complex-Oblique		(hrscco.gsf)	;
111
+/Hershey-Script-Simplex			(hrscs.pfa)	;
112
+/Hershey-Script-Simplex-Bold		(hrscsb.gsf)	;
113
+/Hershey-Script-Simplex-Oblique		(hrscso.gsf)	;
114
+/Hershey-Symbol				(hrsyr.gsf)	;
115
+/NimbusRomanNo9L-Regular		(n021003l.gsf)	;
116
+/NimbusSansL-Regular			(n019003l.gsf)	;
117
+/Palatino-Bold				(pplb.gsf)	;
118
+/Palatino-BoldItalic			(pplbi.gsf)	;
119
+/Palatino-Italic			(pplri.gsf)	;
120
+/Palatino-Roman				(pplr.gsf)	;
121
+/Shareware-Cyrillic-Italic		(fcyri.gsf)	;
122
+/Shareware-Cyrillic-Regular		(fcyr.gsf)	;
123
+/URWAntiquaT-RegularCondensed		(u003043t.gsf)	;
124
+/URWGroteskT-Bold			(u004006t.gsf)	;
125
+/Utopia-Bold				(putb.pfa)	;
126
+/Utopia-BoldItalic			(putbi.pfa)	;
127
+/Utopia-Italic				(putri.pfa)	;
128
+/Utopia-Regular				(putr.pfa)	;
129
+/ZapfChancery				(zcr.gsf)	;
130
+/ZapfChancery-Bold			(zcb.gsf)	;
131
+/ZapfChancery-Oblique			(zcro.gsf)	;
132
+/ZapfDingbats				(pzdr.gsf)	;
133
+
134
+% Font aliases
135
+
136
+/Charter-Roman			/CharterBT-Roman	;
137
+/Charter-Italic			/CharterBT-Italic	;
138
+/Charter-Bold			/CharterBT-Bold		;
139
+/Charter-BoldItalic		/CharterBT-BoldItalic	;
140
+/Courier-BoldItalic			/Courier-BoldOblique		;
141
+/Courier-Italic				/Courier-Oblique		;
142
+/Cyrillic				/Shareware-Cyrillic-Regular	;
143
+/Cyrillic-Italic			/Shareware-Cyrillic-Italic	;
144
+/Cyrillic-Regular			/Shareware-Cyrillic-Regular	;
145
+/Helvetica-Narrow-Bold			/Helvetica-Narrow		;
146
+/ZapfChancery-MediumItalic		/ZapfChancery-Oblique		;

+ 424
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Fontmap.VMS View File

@@ -0,0 +1,424 @@
1
+% fontmap.vms - Ghostscript fontmap for VAX/VMS systems with DECwindows/Motif.
2
+%
3
+% Mathog, 14-SEP-2000.  Modified slightly from that provided by 6.01.
4
+% Changed to use Courier font from Decwindows instead of Ghostscript
5
+% The hershey fonts are listed, but they are not constructed during a regular
6
+% build of the package.
7
+%
8
+% **************************
9
+%Uses all the XDPS Outline fonts (Type 1 fonts) provided with Motif.
10
+%
11
+%XDPS on VAX/VMS does not have Bookman, Palatino and ZapfChancery fonts, so
12
+%we still have to use the Ghostscript fonts for those. Helvetica-Narrow is also
13
+%missing. But then you get the LubalinGraph and Souvenir fonts which are just
14
+%beautiful!
15
+
16
+/AvantGarde-Book
17
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOK.XDPS$OUTLINE) ;
18
+/AvantGarde-BookOblique
19
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-BOOKOBLIQUE.XDPS$OUTLINE) ;
20
+/AvantGarde-Demi
21
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMI.XDPS$OUTLINE) ;
22
+/AvantGarde-DemiOblique
23
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]AVANTGARDE-DEMIOBLIQUE.XDPS$OUTLINE) ;
24
+/Courier-Bold
25
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLD.XDPS$OUTLINE) ;
26
+/Courier-BoldOblique
27
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-BOLDOBLIQUE.XDPS$OUTLINE) ;
28
+/Courier-Oblique
29
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER-OBLIQUE.XDPS$OUTLINE) ;
30
+/Courier
31
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]COURIER.XDPS$OUTLINE) ;
32
+/Helvetica-Bold
33
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLD.XDPS$OUTLINE) ;
34
+/Helvetica-BoldOblique
35
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-BOLDOBLIQUE.XDPS$OUTLINE) ;
36
+/Helvetica-Oblique
37
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA-OBLIQUE.XDPS$OUTLINE) ;
38
+/Helvetica
39
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]HELVETICA.XDPS$OUTLINE) ;
40
+/LubalinGraph-Book
41
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOK.XDPS$OUTLINE) ;
42
+/LubalinGraph-BookOblique
43
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-BOOKOBLIQUE.XDPS$OUTLINE) ;
44
+/LubalinGraph-Demi
45
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMI.XDPS$OUTLINE) ;
46
+/LubalinGraph-DemiOblique
47
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]LUBALINGRAPH-DEMIOBLIQUE.XDPS$OUTLINE) ;
48
+/NewCenturySchlbk-Roman
49
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ROMAN.XDPS$OUTLINE) ;
50
+/NewCenturySchlbk-Italic
51
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-ITALIC.XDPS$OUTLINE) ;
52
+/NewCenturySchlbk-Bold
53
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLD.XDPS$OUTLINE) ;
54
+/NewCenturySchlbk-BoldItalic
55
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]NEWCENTURYSCHLBK-BOLDITALIC.XDPS$OUTLINE) ;
56
+/Souvenir-Light
57
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHT.XDPS$OUTLINE) ;
58
+/Souvenir-LightItalic
59
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-LIGHTITALIC.XDPS$OUTLINE) ;
60
+/Souvenir-Demi
61
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMI.XDPS$OUTLINE) ;
62
+/Souvenir-DemiItalic
63
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SOUVENIR-DEMIITALIC.XDPS$OUTLINE) ;
64
+%If you want the Apple symbol (SIC!) then remove the comment (%)
65
+%in front of character 240 in the following file (he he he)
66
+/Symbol
67
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]SYMBOL.XDPS$OUTLINE) ;
68
+/Times-Roman
69
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ROMAN.XDPS$OUTLINE) ;
70
+/Times-Italic
71
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-ITALIC.XDPS$OUTLINE) ;
72
+/Times-Bold
73
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLD.XDPS$OUTLINE) ;
74
+/Times-BoldItalic
75
+    (SYS$COMMON:[SYSFONT.XDPS.OUTLINE]TIMES-BOLDITALIC.XDPS$OUTLINE) ;
76
+
77
+% 
78
+%
79
+% Fonts contributed by:
80
+%	URW++ Design and Development Incorporated
81
+%	Poppenbuetteler Bogen 29A
82
+%	D-22399 Hamburg
83
+%	Germany
84
+%	tel. +49 (40) 60 60 50
85
+%	fax +49 (40) 60 60 51 11
86
+%	http://www.urwpp.de
87
+% for distribution under the GNU License and Aladdin Free Public License.
88
+% See the notice at the head of this Fontmap file for licensing terms.
89
+% Each of these fonts is individually covered by the license:
90
+% for licensing purposes, they are not "part of" any larger entity.
91
+% The following notice applies to these fonts:
92
+%
93
+%	Copyright URW Software, Copyright 1994 by URW.
94
+%
95
+
96
+% Actual fonts
97
+
98
+/URWBookmanL-DemiBold	(b018015l.pfb)	;
99
+/URWBookmanL-DemiBoldItal	(b018035l.pfb)	;
100
+/URWBookmanL-Ligh	(b018012l.pfb)	;
101
+/URWBookmanL-LighItal	(b018032l.pfb)	;
102
+
103
+/NimbusMonL-Regu	(n022003l.pfb)	;
104
+/NimbusMonL-ReguObli	(n022023l.pfb)	;
105
+/NimbusMonL-Bold	(n022004l.pfb)	;
106
+/NimbusMonL-BoldObli	(n022024l.pfb)	;
107
+
108
+/URWGothicL-Book	(a010013l.pfb)	;
109
+/URWGothicL-BookObli	(a010033l.pfb)	;
110
+/URWGothicL-Demi	(a010015l.pfb)	;
111
+/URWGothicL-DemiObli	(a010035l.pfb)	;
112
+
113
+/NimbusSanL-Regu	(n019003l.pfb)	;
114
+/NimbusSanL-ReguItal	(n019023l.pfb)	;
115
+/NimbusSanL-Bold	(n019004l.pfb)	;
116
+/NimbusSanL-BoldItal	(n019024l.pfb)	;
117
+
118
+/NimbusSanL-ReguCond	(n019043l.pfb)	;
119
+/NimbusSanL-ReguCondItal	(n019063l.pfb)	;
120
+/NimbusSanL-BoldCond	(n019044l.pfb)	;
121
+/NimbusSanL-BoldCondItal	(n019064l.pfb)	;
122
+
123
+/URWPalladioL-Roma	(p052003l.pfb)	;
124
+/URWPalladioL-Ital	(p052023l.pfb)	;
125
+/URWPalladioL-Bold	(p052004l.pfb)	;
126
+/URWPalladioL-BoldItal	(p052024l.pfb)	;
127
+
128
+/CenturySchL-Roma	(c059013l.pfb)	;
129
+/CenturySchL-Ital	(c059033l.pfb)	;
130
+/CenturySchL-Bold	(c059016l.pfb)	;
131
+/CenturySchL-BoldItal	(c059036l.pfb)	;
132
+
133
+/NimbusRomNo9L-Regu	(n021003l.pfb)	;
134
+/NimbusRomNo9L-ReguItal	(n021023l.pfb)	;
135
+/NimbusRomNo9L-Medi	(n021004l.pfb)	;
136
+/NimbusRomNo9L-MediItal	(n021024l.pfb)	;
137
+
138
+/StandardSymL	(s050000l.pfb)	;
139
+
140
+/URWChanceryL-MediItal	(z003034l.pfb)	;
141
+
142
+/Dingbats	(d050000l.pfb)	;
143
+
144
+
145
+% Aliases
146
+
147
+/Bookman-Demi			/URWBookmanL-DemiBold	;
148
+/Bookman-DemiItalic		/URWBookmanL-DemiBoldItal	;
149
+/Bookman-Light			/URWBookmanL-Ligh	;
150
+/Bookman-LightItalic		/URWBookmanL-LighItal	;
151
+
152
+%/Courier			/NimbusMonL-Regu	;
153
+%/Courier-Oblique		/NimbusMonL-ReguObli	;
154
+%/Courier-Bold			/NimbusMonL-Bold	;
155
+%/Courier-BoldOblique		/NimbusMonL-BoldObli	;
156
+
157
+%/AvantGarde-Book		/URWGothicL-Book	;
158
+%/AvantGarde-BookOblique		/URWGothicL-BookObli	;
159
+%/AvantGarde-Demi		/URWGothicL-Demi	;
160
+%/AvantGarde-DemiOblique		/URWGothicL-DemiObli	;
161
+
162
+%/Helvetica			/NimbusSanL-Regu	;
163
+%/Helvetica-Oblique		/NimbusSanL-ReguItal	;
164
+%/Helvetica-Bold			/NimbusSanL-Bold	;
165
+%/Helvetica-BoldOblique		/NimbusSanL-BoldItal	;
166
+
167
+/Helvetica-Narrow		/NimbusSanL-ReguCond	;
168
+/Helvetica-Narrow-Oblique	/NimbusSanL-ReguCondItal	;
169
+/Helvetica-Narrow-Bold		/NimbusSanL-BoldCond	;
170
+/Helvetica-Narrow-BoldOblique	/NimbusSanL-BoldCondItal	;
171
+
172
+/Palatino-Roman			/URWPalladioL-Roma	;
173
+/Palatino-Italic		/URWPalladioL-Ital	;
174
+/Palatino-Bold			/URWPalladioL-Bold	;
175
+/Palatino-BoldItalic		/URWPalladioL-BoldItal	;
176
+
177
+%/NewCenturySchlbk-Roman		/CenturySchL-Roma	;
178
+%/NewCenturySchlbk-Italic	/CenturySchL-Ital	;
179
+%/NewCenturySchlbk-Bold		/CenturySchL-Bold	;
180
+%/NewCenturySchlbk-BoldItalic	/CenturySchL-BoldItal	;
181
+
182
+%/Times-Roman			/NimbusRomNo9L-Regu	;
183
+%/Times-Italic			/NimbusRomNo9L-ReguItal	;
184
+%/Times-Bold			/NimbusRomNo9L-Medi	;
185
+%/Times-BoldItalic		/NimbusRomNo9L-MediItal	;
186
+
187
+%/Symbol				/StandardSymL	;
188
+
189
+/ZapfChancery-MediumItalic	/URWChanceryL-MediItal	;
190
+
191
+/ZapfDingbats			/Dingbats	;
192
+
193
+
194
+% 
195
+%
196
+% Type 1 fonts contributed to the X11R5 distribution.
197
+%
198
+
199
+% The following notice accompanied the Charter fonts.
200
+%
201
+% (c) Copyright 1989-1992, Bitstream Inc., Cambridge, MA.
202
+%
203
+% You are hereby granted permission under all Bitstream propriety rights
204
+% to use, copy, modify, sublicense, sell, and redistribute the 4 Bitstream
205
+% Charter (r) Type 1 outline fonts and the 4 Courier Type 1 outline fonts
206
+% for any purpose and without restriction; provided, that this notice is
207
+% left intact on all copies of such fonts and that Bitstream's trademark
208
+% is acknowledged as shown below on all unmodified copies of the 4 Charter
209
+% Type 1 fonts.
210
+%
211
+% BITSTREAM CHARTER is a registered trademark of Bitstream Inc.
212
+/CharterBT-Roman		(bchr.pfa)	;
213
+/CharterBT-Italic		(bchri.pfa)	;
214
+/CharterBT-Bold			(bchb.pfa)	;
215
+/CharterBT-BoldItalic		(bchbi.pfa)	;
216
+%Charter to CharterBT aliasing
217
+/Charter-Roman			/CharterBT-Roman	;
218
+/Charter-Italic			/CharterBT-Italic	;
219
+/Charter-Bold			/CharterBT-Bold		;
220
+/Charter-BoldItalic		/CharterBT-BoldItalic	;
221
+
222
+% IBM Courier - Copyright (c) IBM Corporation 1990, 1991
223
+%/Courier		(ncrr.pfa)	;
224
+%/Courier-Italic		(ncrri.pfa)	;
225
+%/Courier-Bold		(ncrb.pfa)	;
226
+%/Courier-BoldItalic	(ncrbi.pfa)	;
227
+%Oblique to Italic aliasing
228
+%/Courier-Oblique		/Courier-Italic		;
229
+%/Courier-BoldOblique		/Courier-BoldItalic	;
230
+/Courier-Italic			/Courier-Oblique	;
231
+/Courier-BoldItalic		/Courier-BoldOblique	;
232
+
233
+% The following notice accompanied the Utopia font:
234
+%
235
+%   Permission to use, reproduce, display and distribute the listed
236
+%   typefaces is hereby granted, provided that the Adobe Copyright notice
237
+%   appears in all whole and partial copies of the software and that the
238
+%   following trademark symbol and attribution appear in all unmodified
239
+%   copies of the software:
240
+%
241
+%           Copyright (c) 1989 Adobe Systems Incorporated
242
+%           Utopia (R)
243
+%           Utopia is a registered trademark of Adobe Systems Incorporated
244
+%
245
+%   The Adobe typefaces (Type 1 font program, bitmaps and Adobe Font
246
+%   Metric files) donated are:
247
+%
248
+%           Utopia Regular
249
+%           Utopia Italic
250
+%           Utopia Bold
251
+%           Utopia Bold Italic
252
+
253
+/Utopia-Regular		(putr.gsf)	;
254
+/Utopia-Italic		(putri.gsf)	;
255
+/Utopia-Bold		(putb.gsf)	;
256
+/Utopia-BoldItalic	(putbi.gsf)	;
257
+
258
+% 
259
+%
260
+% Fonts contributed by URW GmbH for distribution under the GNU License.
261
+% The following notice accompanied these fonts:
262
+%
263
+% U004006T URW Grotesk 2031 Bold PostScript Type 1 Font Program
264
+% U003043T URW Antiqua 2051 Regular Condensed PostScript Type 1 Font Program
265
+%
266
+% Copyright (c) 1992 URW GmbH, Hamburg, Germany
267
+%
268
+% This program is free software; you can redistribute it and/or modify
269
+% it under the terms of the GNU General Public License as published by
270
+% the Free Software Foundation; either version 2 of the License, or
271
+% (at your option) later version.
272
+%
273
+% This program is distributed in the hope that it will be useful,
274
+% but WITHOUT ANY WARRANTY; wihtout even the implied warranty of
275
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
276
+% See the GNU General Public License for more details.
277
+%
278
+% You should have received a copy of the GNU General Public License
279
+% along with this program; if not, write to the Free Software
280
+% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111 U.S.A.
281
+%
282
+% Address:
283
+% URW GmbH
284
+% PC Support
285
+% Harksheider Strasse 102
286
+% 2000 Hamburg 65
287
+% Germany
288
+% Phone: +49 40 60 60 50       (Reception)
289
+% Phone: +49 40 60 60 52 30   (PC Support)
290
+% Fax    : +49 40 60 60 52 52
291
+%
292
+
293
+/URWAntiquaT-RegularCondensed	(u003043t.gsf)	;
294
+/URWGroteskT-Bold		(u004006t.gsf)	;
295
+
296
+% 
297
+%
298
+% Shareware Kana fonts.  These are subject to the following notice:
299
+%
300
+% These copyrighted fonts were developed by Kevin Hartig. Permission is
301
+% granted to freely distribute them in entirety along with this statement.
302
+% This is shareware. If you decide to use these fonts please contribute
303
+% $10 US to help support further freeware and shareware software development.
304
+% Questions and comments may be sent to:
305
+%
306
+% hartig@fsl.noaa.gov
307
+% khartig@nyx.cs.du.edu
308
+%
309
+% Kevin Hartig
310
+% 1126 Collyer Street
311
+% Longmont, CO 80501 USA
312
+% 
313
+% copyright 1993.
314
+
315
+% Hiragana and Katakana fonts.  The character names are inappropriate,
316
+% and the encoding is probably not related to any known standard.
317
+
318
+/Calligraphic-Hiragana		(fhirw.gsf)	;
319
+/Calligraphic-Katakana		(fkarw.gsf)	;
320
+
321
+% 
322
+%
323
+% Public-domain fonts.  These have no copyright, and are of unknown quality.
324
+
325
+% Cyrillic fonts.  The character names are inappropriate,
326
+% and the encoding is probably not related to any known standard.
327
+
328
+/Shareware-Cyrillic-Regular	(fcyr.gsf)	;
329
+/Shareware-Cyrillic-Italic	(fcyri.gsf)	;
330
+
331
+% Aliases
332
+/Cyrillic			/Cyrillic-Regular	;
333
+/Cyrillic-Regular		/Shareware-Cyrillic-Regular	;
334
+/Cyrillic-Italic		/Shareware-Cyrillic-Italic	;
335
+
336
+% 
337
+%
338
+% Fonts converted from Hershey outlines.  These are constructed and
339
+% maintained manually.  These are also in the public domain.
340
+%
341
+% The suggested UniqueID's and filenames are constructed differently for
342
+% these than for the ones above, because of the strange way that the Hershey
343
+% fonts were constructed.  The scheme for these looks like:
344
+%
345
+% 42TTXY0
346
+%
347
+% TT = typeface, X = ``class'', Y = variation
348
+%
349
+% The typeface names and numbers are listed in fonts.mak.
350
+%
351
+% class:
352
+% 0 = normal			= r
353
+% 1 = simplex			= s
354
+% 2 = complex			= c
355
+% 3 = triplex			= t
356
+% 4 = duplex			= d
357
+%
358
+% variation:
359
+% 0 = normal			(omitted)
360
+% 1 = oblique			= o
361
+% 2 = italic			= i
362
+% 3 = bold			= b
363
+% 4 = bold oblique		= bo
364
+% 5 = bold italic		= bi
365
+%
366
+
367
+% Fonts created by Thomas Wolff <wolff@inf.fu-berlin.de>, by adding
368
+% accents, accented characters, and various other non-alphabetics
369
+% to the original Hershey fonts.  These are "freeware", not to be sold.
370
+
371
+/Hershey-Gothic-English		(hrger.pfa)	;	% 5066533
372
+/Hershey-Gothic-German		(hrgrr.pfa)	;
373
+/Hershey-Gothic-Italian		(hritr.pfa)	; 
374
+
375
+/Hershey-Plain-Duplex		(hrpld.pfa)	;
376
+/Hershey-Plain-Duplex-Italic	(hrpldi.pfa)	;
377
+/Hershey-Plain-Triplex		(hrplt.pfa)	;
378
+/Hershey-Plain-Triplex-Italic	(hrplti.pfa)	;
379
+
380
+/Hershey-Script-Complex		(hrscc.pfa)	;
381
+/Hershey-Script-Simplex		(hrscs.pfa)	;	% 5066541
382
+
383
+% Fonts created algorithmically from the above.
384
+
385
+/Hershey-Gothic-English-Bold		(hrgerb.gsf)	;	% 5066542
386
+/Hershey-Gothic-English-Oblique		(hrgero.gsf)	;
387
+/Hershey-Gothic-English-SemiBold	(hrgerd.gsf)	;
388
+/Hershey-Gothic-German-Bold		(hrgrrb.gsf)	;
389
+/Hershey-Gothic-German-Oblique		(hrgrro.gsf)	;
390
+/Hershey-Gothic-Italian-Bold		(hritrb.gsf)	;
391
+/Hershey-Gothic-Italian-Oblique		(hritro.gsf)	;
392
+
393
+/Hershey-Plain-Duplex-Bold		(hrpldb.gsf)	;
394
+/Hershey-Plain-Duplex-Bold-Italic	(hrpldbi.gsf)	;
395
+/Hershey-Plain-Triplex-Bold		(hrpltb.gsf)	;
396
+/Hershey-Plain-Triplex-Bold-Italic	(hrpltbi.gsf)	;
397
+
398
+/Hershey-Script-Complex-Bold		(hrsccb.gsf)	;
399
+/Hershey-Script-Complex-Oblique		(hrscco.gsf)	;
400
+/Hershey-Script-Simplex-Bold		(hrscsb.gsf)	;
401
+/Hershey-Script-Simplex-Oblique		(hrscso.gsf)	;	% 5066556
402
+
403
+% Fonts consisting only of characters from the original Hershey
404
+% distribution.  These are Type 3 fonts.
405
+
406
+/Hershey-Greek-Complex			(hrgkc.gsf)	;	% 5066557
407
+/Hershey-Greek-Simplex			(hrgks.gsf)	;
408
+
409
+/Hershey-Plain				(hrplr.gsf)	;
410
+/Hershey-Plain-Simplex			(hrpls.gsf)	;	% 5066560
411
+
412
+% Fonts created algorithmically from the above.
413
+
414
+/Hershey-Plain-Bold			(hrplrb.gsf)	;	% 5066561
415
+/Hershey-Plain-Bold-Oblique		(hrplrbo.gsf)	;
416
+/Hershey-Plain-Oblique			(hrplro.gsf)	;
417
+/Hershey-Plain-Simplex-Bold		(hrplsb.gsf)	;
418
+/Hershey-Plain-Simplex-Bold-Oblique	(hrplsbo.gsf)	;
419
+/Hershey-Plain-Simplex-Oblique		(hrplso.gsf)	;	% 5066566
420
+
421
+% This font, and only this font among the Hershey fonts, uses
422
+% the SymbolEncoding.
423
+
424
+/Hershey-Symbol				(hrsyr.gsf)	;	% 5066567

+ 14
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/Info-macos.plist View File

@@ -0,0 +1,14 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE plist SYSTEM "file://localhost/System/Library/DTDs/PropertyList.dtd">
3
+<plist version="0.9">
4
+<dict>
5
+        <key>CFBundleIdentifier</key>
6
+        <string>com.ghostscript.Ghostscript</string>
7
+        <key>CFBundleName</key>
8
+        <string>Ghostscript</string>
9
+        <key>CFBundleShortVersionString</key>
10
+        <string>703</string>
11
+        <key>NSExecutable</key>
12
+        <string>Ghostscript</string>
13
+</dict>
14
+</plist>

+ 43
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/PDFA_def.ps View File

@@ -0,0 +1,43 @@
1
+%!
2
+% $Id: PDFA_def.ps 8284 2007-10-10 17:40:38Z giles $
3
+% This is a sample prefix file for creating a PDF/A document.
4
+% Feel free to modify entries marked with "Customize".
5
+
6
+% This assumes an ICC profile to reside in the file (ISO Coated sb.icc),
7
+% unless the user modifies the corresponding line below.
8
+
9
+
10
+systemdict /ProcessColorModel known {
11
+  systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and
12
+} {
13
+  true
14
+} ifelse 
15
+{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)=
16
+  /ProcessColorModel cvx /rangecheck signalerror
17
+} if
18
+
19
+
20
+% Define entries to the document Info dictionary :
21
+
22
+/ICCProfile (ISO Coated sb.icc)   % Customize.
23
+def
24
+
25
+[ /Title (Title)                  % Customize.
26
+  /DOCINFO pdfmark
27
+
28
+% Define an ICC profile :
29
+
30
+[/_objdef {icc_PDFA} /type /stream /OBJ pdfmark
31
+[{icc_PDFA} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark
32
+[{icc_PDFA} ICCProfile (r) file /PUT pdfmark
33
+
34
+% Define the output intent dictionary :
35
+
36
+[/_objdef {OutputIntent_PDFA} /type /dict /OBJ pdfmark
37
+[{OutputIntent_PDFA} <<
38
+  /Type /OutputIntent             % Must be so (the standard requires).
39
+  /S /GTS_PDFA1                   % Must be so (the standard requires).
40
+  /DestOutputProfile {icc_PDFA}            % Must be so (see above).
41
+  /OutputConditionIdentifier (CGATS TR001)      % Customize
42
+>> /PUT pdfmark
43
+[{Catalog} <</OutputIntents [ {OutputIntent_PDFA} ]>> /PUT pdfmark

+ 51
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/PDFX_def.ps View File

@@ -0,0 +1,51 @@
1
+%!
2
+% $Id: PDFX_def.ps 8284 2007-10-10 17:40:38Z giles $
3
+% This is a sample prefix file for creating a PDF/X-3 document.
4
+% Feel free to modify entries marked with "Customize".
5
+
6
+% This assumes an ICC profile to reside in the file (ISO Coated sb.icc),
7
+% unless the user modifies the corresponding line below.
8
+
9
+
10
+systemdict /ProcessColorModel known {
11
+  systemdict /ProcessColorModel get dup /DeviceGray ne exch /DeviceCMYK ne and
12
+} {
13
+  true
14
+} ifelse 
15
+{ (ERROR: ProcessColorModel must be /DeviceGray or DeviceCMYK.)=
16
+  /ProcessColorModel cvx /rangecheck signalerror
17
+} if
18
+
19
+
20
+% Define entries to the document Info dictionary :
21
+
22
+/ICCProfile (ISO Coated sb.icc) def  % Customize or remove.
23
+
24
+[ /GTS_PDFXVersion (PDF/X-3:2002) % Must be so (the standard requires).
25
+  /Title (Title)                  % Customize.
26
+  /Trapped /False                 % Must be so (Ghostscript doesn't provide other).
27
+  /DOCINFO pdfmark
28
+
29
+% Define an ICC profile :
30
+
31
+currentdict /ICCProfile known {
32
+  [/_objdef {icc_PDFX} /type /stream /OBJ pdfmark
33
+  [{icc_PDFX} <</N systemdict /ProcessColorModel get /DeviceGray eq {1} {4} ifelse >> /PUT pdfmark
34
+  [{icc_PDFX} ICCProfile (r) file /PUT pdfmark
35
+} if
36
+
37
+% Define the output intent dictionary :
38
+
39
+[/_objdef {OutputIntent_PDFX} /type /dict /OBJ pdfmark
40
+[{OutputIntent_PDFX} <<
41
+  /Type /OutputIntent              % Must be so (the standard requires).
42
+  /S /GTS_PDFX                     % Must be so (the standard requires).
43
+  /OutputCondition (Commercial and specialty printing) % Customize
44
+  /Info (none)                     % Customize
45
+  /OutputConditionIdentifier (CGATS TR001)      % Customize
46
+  /RegistryName (http://www.color.org)   % Must be so (the standard requires).
47
+  currentdict /ICCProfile known {
48
+    /DestOutputProfile {icc_PDFX}  % Must be so (see above).
49
+  } if
50
+>> /PUT pdfmark
51
+[{Catalog} <</OutputIntents [ {OutputIntent_PDFX} ]>> /PUT pdfmark

+ 100
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/acctest.ps View File

@@ -0,0 +1,100 @@
1
+%!
2
+% Check that operators do their access tests correctly.
3
+% $Id: acctest.ps 6300 2005-12-28 19:56:24Z giles $
4
+
5
+% proc dotest => .
6
+/dotest
7
+  {
8
+    dup
9
+    mark
10
+    exch
11
+    stopped not % False if error, true if no error.
12
+    { (Allowed access: ) print cleartomark == }
13
+    if
14
+    clear
15
+  }
16
+def
17
+
18
+0 0 moveto % So the show commands don't bomb because of nocurrentpoint.
19
+
20
+{ [1 2] executeonly aload }					dotest 
21
+{ (string) executeonly (seek) anchorsearch }			dotest
22
+{ (string) (seek) executeonly anchorsearch }			dotest
23
+{ 100 101 (string) noaccess ashow}				dotest
24
+{ 100 1 array readonly astore }					dotest
25
+{ 100 101 102 103 104 (string) noaccess awidthshow }		dotest
26
+{ 1 dict noacess begin }					dotest
27
+{ 1 array executeonly 1 array copy }				dotest
28
+{ 1 array 1 array readonly copy }				dotest
29
+{ 1 dict noaccess 1 dict copy }					dotest
30
+{ 1 dict 1 dict readonly copy }					dotest
31
+{ 1 string executeonly 1 string copy }				dotest
32
+{ 1 string 1 string readonly copy }				dotest
33
+{ (100) executeonly cvi }					dotest
34
+{ (string) executeonly cvn }					dotest
35
+{ (100.001) executeonly cvr }					dotest
36
+{ 1 10 1 string readonly cvrs }					dotest
37
+{ true 5 string readonly cvs }					dotest
38
+{ 1 dict readonly begin /foo true def }				dotest
39
+{ 10 array readonly dictstack }					dotest 
40
+{ 1 string executeonly 1 string eq }				dotest
41
+{ 1 string 1 string executeonly eq }				dotest
42
+{ 10 array readonly execstack }					dotest
43
+{ 1 string noaccess executeonly }				dotest
44
+{ 1 array noaccess executeonly }				dotest
45
+{ 1 array executeonly { pop } forall }				dotest
46
+{ 1 dict noaccess { pop pop } forall }				dotest
47
+{ 1 string executeonly { pop } forall }				dotest
48
+{ (string1) executeonly (string2) ge }				dotest
49
+{ (string1) (string2) executeonly ge }				dotest
50
+{ 1 array executeonly 0 get }					dotest
51
+{ 1 dict noaccess /key get }					dotest
52
+{ 1 string executeonly 0 get }					dotest
53
+{ 1 array executeonly 0 1 getinterval }				dotest
54
+{ 1 string executeonly 0 1 getinterval }			dotest
55
+{ (string1) executeonly (string2) gt }				dotest
56
+{ (string1) (string2) executeonly gt }				dotest
57
+{ 1 dict noaccess /key known }					dotest
58
+{ {} (string) executeonly kshow }				dotest
59
+{ (string1) executeonly (string2) le }				dotest
60
+{ (string1) (string2) executeonly le }				dotest
61
+{ 1 array executeonly length }					dotest
62
+{ 1 dict noaccess length }					dotest
63
+{ 1 string executeonly length }					dotest
64
+%%{ /foo 1 dict def foo begin /bar foo def bar noaccess pop /key load } dotest
65
+{ (string1) executeonly (string2) lt }				dotest
66
+{ (string1) (string2) executeonly lt }				dotest
67
+{ 1 dict noaccess maxlength }					dotest
68
+{ 1 string executeonly 1 string ne }				dotest
69
+{ 1 string 1 string executeonly ne }				dotest
70
+%{ newpath 0 0 moveto (a) false charpath 
71
+%  {} {} {} {} pathforall closepath }				dotest
72
+{ 1 array executeonly 0 put }					dotest
73
+{ 1 dict noaccess /key put }					dotest
74
+{ 1 string executeonly 0 put }					dotest
75
+{ 1 array executeonly 0 1 putinterval }				dotest
76
+{ 1 string executeonly 0 1 putinterval }			dotest
77
+{ (access.ps) (r) file executeonly read }			dotest
78
+{ (access.ps) (r) file executeonly 10 string readhexstring }	dotest
79
+{ (access.ps) (r) file 10 string readonly readhexstring }	dotest
80
+{ (access.ps) (r) file executeonly 100 string readline }	dotest
81
+{ (access.ps) (r) file 100 string readonly readline }		dotest
82
+{ (access.ps) (r) file executeonly 10 string readstring }	dotest
83
+{ (access.ps) (r) file 10 string readonly readstring }		dotest
84
+% run does not check for no read access?
85
+{ (string) executeonly (seek) search }				dotest
86
+{ (string) (seek) executeonly search }				dotest
87
+{ (string) executeonly show }
88
+%% some test for store.
89
+{ (string) executeonly stringwidth }				dotest
90
+{ (access.ps) (r) file executeonly token }			dotest
91
+{ (10) executeonly token }					dotest
92
+{ /foo 1 dict def foo begin /bar foo def bar noaccess pop /key where } dotest
93
+{ 100 101 102 (string) noaccess widthshow }			dotest
94
+{ (/tmp/_.ps) noaccess (w) file closefile }			dotest
95
+{ (/tmp/_.ps) (w) noaccess file closefile }			dotest
96
+{ (/tmp/_.ps) (w) file executeonly 100 write }			dotest
97
+{ (/tmp/_.ps) (w) file executeonly 10 string writehexstring }	dotest
98
+{ (/tmp/_.ps) (w) file 10 string executeonly writehexstring }	dotest
99
+{ (/tmp/_.ps) (w) file executeonly 10 string writestring }	dotest
100
+{ (/tmp/_.ps) (w) file 10 string executeonly writestring }	dotest

+ 357
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/addxchar.ps View File

@@ -0,0 +1,357 @@
1
+%    Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: addxchar.ps 6300 2005-12-28 19:56:24Z giles $
17
+% Add the Central European and other Adobe extended Latin characters to a
18
+% Type 1 font.
19
+% Requires -dWRITESYSTEMDICT to disable access protection.
20
+
21
+(type1ops.ps) runlibfile
22
+
23
+% ---------------- Utilities ---------------- %
24
+
25
+/addce_dict 50 dict def
26
+addce_dict begin
27
+
28
+% Define the added copyright notice.
29
+/addednotice (. Portions Copyright (C) 1999 Aladdin Enterprises.) def 
30
+
31
+% Open a font for modification by removing the FID and changing the
32
+% FontName.  Removing UniqueID and XUID is not necessary, since we
33
+% will only be adding characters.
34
+/openfont {		% <name> <font> openfont <name> <font'>
35
+  dup length dict copy
36
+  dup /FID undef
37
+  dup /FontName 3 index put
38
+} def
39
+
40
+% Do the equivalent of false charpath for a glyph.
41
+% This should really be an operator!
42
+/glyphpath {		% <glyph> glyphpath -
43
+  currentfont /Encoding get 0 3 -1 roll put
44
+  <00> false charpath
45
+} def
46
+
47
+% Do the equivalent of charpath + pathbbox for a glyph.
48
+/glyphbbox {		% <glyph> glyphbbox <llx> <lly> <urx> <ury>
49
+	% We cache this value, because it's expensive to compute.
50
+  BBoxes 1 index .knownget {
51
+    exch pop
52
+  } {
53
+    gsave newpath 0 0 moveto dup glyphpath [pathbbox] grestore
54
+    BBoxes 3 -1 roll 2 index put
55
+  } ifelse aload pop
56
+} def
57
+
58
+% Get the side bearing and width for a glyph.
59
+/glyphsbw {		% <glyph> glyphsbw <lsbx> <wx>
60
+	% We cache this value, because it's expensive to compute.
61
+  SBW 1 index .knownget {
62
+    exch pop
63
+  } {
64
+    dup glyphcs { dup /hsbw eq { pop exit } if } forall
65
+    2 array astore
66
+    SBW 3 -1 roll 2 index put
67
+  } ifelse aload pop
68
+} def
69
+
70
+% Get the CharString for a glyph, as an array.
71
+/glyphcs {		% <glyph> glyphcs <array>
72
+  CharStrings exch get
73
+  4330 exch dup length string .type1decrypt exch pop
74
+  dup length lenIV sub lenIV exch getinterval
75
+  0 () /SubFileDecode filter [ exch charstack_read ]
76
+} def
77
+
78
+% Find an occurrence of a value in an array.
79
+/asearch {		% <array> <value> asearch <index> true
80
+			% <array> <value> asearch false
81
+  false 0 4 2 roll exch {
82
+		% Stack: false index value element
83
+    2 copy eq { pop pop exch not exch dup exit } if
84
+    exch 1 add exch
85
+  } forall pop pop
86
+} def
87
+
88
+% Convert an array back to a CharString.
89
+/csdef {		% <glyph> <array> csdef -
90
+  charproc_string
91
+  4330 exch dup .type1encrypt exch pop readonly
92
+  CharStrings 3 1 roll put
93
+} def
94
+
95
+% Split an accented character name.
96
+/splitaccented {	% <Baccent> splitaccented <Baccent> <B> <accent>
97
+    dup =string cvs
98
+    dup 0 1 getinterval cvn
99
+    exch dup length 1 sub 1 exch getinterval cvn
100
+} def
101
+
102
+% Begin the definition of a 'seac' character.
103
+% Defines accent, base, abox, bbox.
104
+% The initial dx lines up the origins of the base and the accent.
105
+/beginseac {		% <bchar> <achar> beginseac
106
+			%   -mark- <lsbx> <wx> /hsbw <asb> <dx>
107
+  /accent exch def /base exch def
108
+  /abox [accent glyphbbox] def
109
+  /bbox [base glyphbbox] def
110
+  [ base glyphsbw /hsbw accent glyphsbw pop
111
+  dup 4 index sub
112
+} def
113
+
114
+% Center the accent over the base of a 'seac' character.
115
+/centeraccent {		% <dx> centeraccent <adx>
116
+  bbox 2 get bbox 0 get add 2 div
117
+  abox 2 get abox 0 get add 2 div
118
+  sub add
119
+} def
120
+
121
+% Finish the definition of a 'seac' character.
122
+/finishseac {		% <charname> -mark- ... <adx> <ady> finishseac -
123
+  exch cvi exch cvi
124
+  charindex base get charindex accent get /seac ] csdef
125
+} def
126
+
127
+% ---------------- Main program ---------------- %
128
+
129
+% Define accented characters that can be made with seac,
130
+% with the accent centered over the character.
131
+/seacchars [
132
+  /Abreve /Amacron
133
+  /Cacute /Ccaron /Dcaron
134
+  /Ecaron /Edotaccent /Emacron
135
+  /Gbreve
136
+  /Idotaccent /Imacron
137
+  /Lacute
138
+  /Nacute /Ncaron
139
+  /Ohungarumlaut /Omacron
140
+  /Racute /Rcaron
141
+  /Sacute /Scedilla
142
+  /Tcaron
143
+  /Uhungarumlaut /Umacron /Uogonek /Uring
144
+  /Zacute /Zdotaccent
145
+  /abreve /amacron
146
+  /cacute /ccaron
147
+  /ecaron /edotaccent /emacron
148
+  /gbreve
149
+  /lacute
150
+  /nacute /ncaron
151
+  /ohungarumlaut /omacron
152
+  /racute /rcaron
153
+  /sacute /scedilla
154
+  /uhungarumlaut /umacron /uring
155
+  /zacute /zdotaccent
156
+] def
157
+
158
+% Define seac characters where the accent lines up with the right
159
+% edge of the character.
160
+/seacrightchars [
161
+  /Aogonek /Eogonek /Iogonek /aogonek /eogonek /iogonek /uogonek
162
+] def
163
+
164
+% Define seac characters where the caron becomes an appended quoteright.
165
+/seaccaronchars [
166
+  /dcaron /lcaron /tcaron
167
+] def
168
+
169
+% Define seac characters using commaaccent.
170
+/seaccommachars [
171
+  /Gcommaaccent /Kcommaaccent /Lcommaaccent /Ncommaaccent /Rcommaaccent
172
+  /Scommaaccent /Tcommaaccent
173
+  /gcommaaccent /kcommaaccent /lcommaaccent /ncommaaccent /rcommaaccent
174
+  /scommaaccent /tcommaaccent
175
+] def
176
+
177
+% Define the characters copied from the Symbol font.
178
+/symbolchars [
179
+  /Delta /greaterequal /lessequal /lozenge /notequal /partialdiff
180
+  /summation
181
+] def
182
+
183
+% Define the procedures for editing the commaaccent character.
184
+% Delete all the hints, since it's too hard to adjust them.
185
+/caedit mark
186
+  /rmoveto { exch commatop sub cvi exch }
187
+  /hstem { pop pop pop }
188
+  /vstem 1 index
189
+  /callothersubr {
190
+    dup 3 eq { 4 { pop } repeat /skip true def } if
191
+  }
192
+  /pop { skip { pop /skip false def } if }
193
+.dicttomark def
194
+
195
+/addce {		% <name> <font> addce <font'>
196
+  20 dict begin
197
+  /origfont 1 index def
198
+  openfont
199
+  dup /CharStrings 2 copy get dup length dict copy put
200
+  dup /Encoding 2 copy get dup length array copy put
201
+  dup /FontInfo 2 copy get dup length dict copy put
202
+  definefont /font exch def
203
+  currentdict font end begin begin
204
+  font 1000 scalefont setfont
205
+  /symbolfont /Symbol findfont def
206
+  /BBoxes CharStrings length dict def
207
+  /SBW CharStrings length dict def
208
+
209
+  /italfactor FontInfo /ItalicAngle .knownget {
210
+    neg dup sin exch cos div
211
+  } {
212
+    0
213
+  } ifelse def
214
+
215
+	% Invert the Encoding (needed for seac).
216
+
217
+  /charindex 256 dict def
218
+  0 1 255 {
219
+    charindex exch Encoding 1 index get exch put
220
+  } for
221
+
222
+	% Add the commaaccent character, by moving the comma downward.
223
+
224
+  /comma glyphbbox /commatop exch def pop pop pop
225
+  /comma glyphcs
226
+    /skip false def
227
+    [ exch { caedit 1 index .knownget { exec } if } forall ]
228
+  /commaaccent exch csdef
229
+
230
+	% Add the accented characters that can be made with seac.
231
+
232
+  seacchars {
233
+    splitaccented beginseac
234
+      centeraccent
235
+		% If the accent would collide with the base character,
236
+		% raise it a little.
237
+      abox 1 get bbox 3 get sub dup 0 le {
238
+		% ... but not if the accent is in the low position.
239
+	abox 1 get 0 gt {
240
+	  neg 60 add
241
+		% Adjust the X position if italic.
242
+	  dup italfactor mul 3 -1 roll add exch
243
+	} {
244
+	  pop 0
245
+	} ifelse
246
+      } {
247
+	pop 0
248
+      } ifelse
249
+    finishseac
250
+  } forall
251
+
252
+  seacrightchars {
253
+    splitaccented beginseac
254
+    bbox 2 get abox 2 get sub add	% line up right edges
255
+    0 finishseac
256
+  } forall
257
+
258
+  /dcroat /d /hyphen beginseac
259
+    bbox 2 get abox 2 get sub add	% line up right edges
260
+  0 finishseac
261
+
262
+  /imacron /dotlessi /macron beginseac
263
+    centeraccent
264
+  0 finishseac
265
+
266
+  /Lcaron /L /quoteright beginseac
267
+    bbox 2 get abox 2 get sub add	% line up right edges
268
+  0 finishseac
269
+
270
+  seaccaronchars {
271
+    dup =string cvs 0 1 getinterval cvn /quoteright beginseac
272
+		% Move the quote to the right of the character.
273
+    bbox 2 get abox 0 get sub 50 add add
274
+		% Adjust the character width as well.
275
+    4 -1 roll abox 2 get abox 0 get sub 50 add add cvi 4 1 roll
276
+    0 finishseac
277
+  } forall
278
+
279
+  seaccommachars {
280
+    dup =string cvs 0 1 getinterval cvn /comma beginseac
281
+      centeraccent
282
+      commatop neg
283
+		% Lower the accent if the character extends below
284
+		% the baseline
285
+      bbox 1 get 0 .min add
286
+    finishseac
287
+  } forall
288
+
289
+	% Add the characters from the Symbol font.
290
+	% We should scale them to match the FontBBox, but we don't.
291
+
292
+  symbolchars {
293
+    symbolfont /CharStrings get 1 index get
294
+    CharStrings 3 1 roll put
295
+  } forall
296
+
297
+	% Add the one remaining character.
298
+
299
+  CharStrings /Dcroat CharStrings /Eth get put
300
+
301
+	% Recompute the FontBBox, since some of the accented characters
302
+	% may have enlarged it.
303
+
304
+  /llx 1000 def /lly 1000 def /urx 0 def /ury 0 def
305
+  CharStrings {
306
+    pop glyphbbox
307
+    ury .max /ury exch def urx .max /urx exch def
308
+    lly .min /lly exch def llx .min /llx exch def
309
+  } forall
310
+  /FontBBox llx cvi lly cvi urx ceiling cvi ury ceiling cvi 4 packedarray def
311
+
312
+	% Restore the Encoding and wrap up.
313
+
314
+  [/Copyright /Notice] {
315
+    FontInfo 1 index .knownget {
316
+      addednotice concatstrings FontInfo 3 1 roll put
317
+    } {
318
+      pop
319
+    } ifelse
320
+  } forall
321
+  FontName font openfont
322
+  dup /Encoding origfont /Encoding get put
323
+  definefont
324
+
325
+  end end
326
+} def
327
+
328
+currentdict end readonly pop	% addce_dict
329
+
330
+/addce { addce_dict begin addce end } def
331
+
332
+% ---------------- Integration ---------------- %
333
+
334
+% We would like to patch the font loader so that it adds the extended
335
+% Latin characters automatically.  We haven't done this yet.
336
+
337
+% ---------------- Test program ---------------- %
338
+
339
+/TEST where { pop TEST } { false } ifelse {
340
+  /FONT where { pop } { /FONT /Palatino-Italic def } ifelse
341
+  (unprot.ps) runlibfile
342
+  unprot
343
+  (wrfont.ps) runlibfile
344
+  wrfont_dict begin
345
+    /eexec_encrypt true def
346
+    /binary_CharStrings true def
347
+  end
348
+  save
349
+    FONT findfont
350
+    /Latin-CE exch addce setfont
351
+    (t.ce.pfb) (w) file dup writefont closefile
352
+  restore
353
+  (prfont.ps) runlibfile
354
+  (t.ce.pfb) (r) file .loadfont
355
+  /Latin-CE DoFont
356
+  quit
357
+} if

+ 151
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/afmdiff.awk View File

@@ -0,0 +1,151 @@
1
+#!/usr/bin/awk -f
2
+###=====================================================================
3
+### Read two Adobe Font Metric files, and compute tables of the
4
+### differences in character repertoire, declared widths (WX), and
5
+### bounding boxes.
6
+###
7
+### Usage:
8
+###	awk -f afmdiff.awk file1.afm file2.afm
9
+###
10
+### Author:
11
+### 	Nelson H. F. Beebe
12
+### 	Center for Scientific Computing
13
+### 	University of Utah
14
+### 	Department of Mathematics, 322 INSCC
15
+### 	155 S 1400 E RM 233
16
+### 	Salt Lake City, UT 84112-0090
17
+### 	USA
18
+### 	Email: beebe@math.utah.edu, beebe@acm.org, beebe@computer.org,
19
+###	       beebe@ieee.org (Internet)
20
+### 	WWW URL: http://www.math.utah.edu/~beebe
21
+### 	Telephone: +1 801 581 5254
22
+### 	FAX: +1 801 585 1640, +1 801 581 4148
23
+###
24
+########################################################################
25
+########################################################################
26
+########################################################################
27
+###                                                                  ###
28
+###        awkdiff.awk: compare two Adobe Font Metric files          ###
29
+###                                                                  ###
30
+###              Copyright (C) 2000 Nelson H. F. Beebe               ###
31
+###                                                                  ###
32
+### This program is covered by the GNU General Public License (GPL), ###
33
+### version 2 or later, available as the file COPYING in the program ###
34
+### source distribution, and on the Internet at                      ###
35
+###                                                                  ###
36
+###               ftp://ftp.gnu.org/gnu/GPL                          ###
37
+###                                                                  ###
38
+###               http://www.gnu.org/copyleft/gpl.html               ###
39
+###                                                                  ###
40
+### This program is free software; you can redistribute it and/or    ###
41
+### modify it under the terms of the GNU General Public License as   ###
42
+### published by the Free Software Foundation; either version 2 of   ###
43
+### the License, or (at your option) any later version.              ###
44
+###                                                                  ###
45
+### This program is distributed in the hope that it will be useful,  ###
46
+### but WITHOUT ANY WARRANTY; without even the implied warranty of   ###
47
+### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the    ###
48
+### GNU General Public License for more details.                     ###
49
+###                                                                  ###
50
+### You should have received a copy of the GNU General Public        ###
51
+### License along with this program; if not, write to the Free       ###
52
+### Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,   ###
53
+### MA 02111-1307 USA                                                ###
54
+###                                                                  ###
55
+### This program may also be distributed as part of AFPL             ###
56
+### Ghostscript, under the terms of the Aladdin Free Public License  ###
57
+### (the "License").                                                 ###
58
+###                                                                  ###
59
+### Every copy of AFPL Ghostscript must include a copy of the        ###
60
+### License, normally in a plain ASCII text file named PUBLIC.  The  ###
61
+### License grants you the right to copy, modify and redistribute    ###
62
+### AFPL Ghostscript, but only under certain conditions              ###
63
+### described in the License.  Among other things, the License       ###
64
+### requires that the copyright notice and this notice be preserved  ###
65
+### on all copies.                                                   ###
66
+###                                                                  ###
67
+########################################################################
68
+########################################################################
69
+########################################################################
70
+#
71
+# [29-Apr-2000]
72
+#=======================================================================
73
+
74
+/^FontName/	{ FontName[++NFontName] = $2 }
75
+
76
+
77
+/^C /		{
78
+		    if (NFontName == 1)
79
+			CharName1[$8]++
80
+		    if (NFontName == 2)
81
+			CharName2[$8]++
82
+		}
83
+
84
+
85
+/^C /		{
86
+		    name = $8
87
+		    if (name in WX)
88
+		    {
89
+			if (WX[name] != $5)
90
+			    WXDIFF[name] = WX[name] - $5
91
+		    }
92
+		    else
93
+			WX[name] = $5
94
+		}
95
+
96
+
97
+/^C /		{
98
+		    name = $8
99
+		    bx = $13 - $11
100
+		    if (name in BX)
101
+		    {
102
+			if (BX[name] != bx)
103
+			    BXDIFF[name] = BX[name] - bx
104
+		    }
105
+		    else
106
+			BX[name] = bx
107
+		}
108
+
109
+
110
+/^C /		{
111
+		    name = $8
112
+		    by = $14 - $12
113
+		    if (name in BY)
114
+		    {
115
+			if (BY[name] != by)
116
+			    BYDIFF[name] = BY[name] - by
117
+		    }
118
+		    else
119
+			BY[name] = by
120
+		}
121
+
122
+
123
+END		{
124
+		    Sortpipe = "sort -f | pr -3 -w80 -l1 -t"
125
+		    print "Comparison of AFM metrics in files:", ARGV[1], ARGV[2]
126
+		    print "Font names:", FontName[1], FontName[2]
127
+		    show_name_diffs(FontName[2],CharName2, FontName[1],CharName1)
128
+		    show_name_diffs(FontName[1],CharName1, FontName[2],CharName2)
129
+		    show_num_diffs("WX width differences", WXDIFF)
130
+		    show_num_diffs("Bounding box width differences", BXDIFF)
131
+		    show_num_diffs("Bounding box height differences",BYDIFF)
132
+		}
133
+
134
+function show_name_diffs(font1,array1,font2,array2, name)
135
+{
136
+    print "\nChars from", font2, "missing from", font1 ":"
137
+    for (name in array2)
138
+    {
139
+	if (!(name in array1))
140
+	    printf("%s\n", name) | Sortpipe
141
+    }
142
+    close(Sortpipe)
143
+}
144
+
145
+function show_num_diffs(title,array, name)
146
+{
147
+    printf("\n%s:\n", title)
148
+    for (name in array)
149
+	printf("%-15s\t%4d\n", name, array[name]) | Sortpipe
150
+    close(Sortpipe)
151
+}

+ 73
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/align.ps View File

@@ -0,0 +1,73 @@
1
+%    Copyright (C) 1989, 1996 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: align.ps 6300 2005-12-28 19:56:24Z giles $
17
+% Print a page that indicates the proper settings of Margins and HWMargins
18
+% for a given device.  Requires a Level 2 system.
19
+
20
+% Reset the offset and margins.
21
+
22
+<<
23
+  /PageOffset [0 0]
24
+  /Margins [0 0]
25
+  /.HWMargins [0 0 0 0]
26
+>>
27
+setpagedevice
28
+<<
29
+  /ImagingBBox null
30
+>>
31
+setpagedevice
32
+
33
+% Determine the actual page size.
34
+
35
+clippath pathbbox newpath
36
+/y1 exch def  /x1 exch def  pop pop
37
+
38
+% Draw lines that should be exactly 1" in from each edge,
39
+% and should extend precisely to the edge of the paper.
40
+
41
+1 setlinewidth
42
+0 setgray
43
+72 0 moveto 0 y1 rlineto stroke
44
+0 72 moveto x1 0 rlineto stroke
45
+
46
+% Print the text in the middle of the page.
47
+
48
+/S 80 string def
49
+108 480 moveto
50
+/Helvetica 12 selectfont
51
+ { currentfile S readline pop dup (%END) eq { pop exit } if
52
+   gsave show grestore 0 -15 rmoveto
53
+ } loop
54
+Let the distance in inches from the left edge of the page to
55
+the vertical line be H, and from the bottom edge to the
56
+horizontal line be V; let the lengths of the gaps at the top
57
+and bottom of the vertical line be T and B respectively, and
58
+the gaps at the left and right of the horizontal line be L
59
+and R.  For correct alignment of pages, put the following line
60
+in a file named (for example) margins.ps, and then mention
61
+margins.ps on the gs command line when printing any of your
62
+own files:
63
+
64
+    <<  /.HWMargins [ml mb mr mt] /Margins [x y]  >>  setpagedevice
65
+
66
+where
67
+        ml = L * 72, mb = B * 72, mr = R * 72, mt = T * 72,
68
+%END
69
+/res currentpagedevice /.MarginsHWResolution get def
70
+(        x = (1 - H) * ) show res 0 get =string cvs show
71
+(, y = (V - 1) * ) show res 1 get =string cvs show
72
+
73
+showpage

+ 13
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops View File

@@ -0,0 +1,13 @@
1
+#!/bin/sh
2
+# $Id: bdftops 8107 2007-07-05 19:04:29Z till $
3
+
4
+# This definition is changed on install to match the
5
+# executable name set in the makefile
6
+GS_EXECUTABLE=gs
7
+gs="`dirname $0`/$GS_EXECUTABLE"
8
+if test ! -x "$gs"; then
9
+	gs="$GS_EXECUTABLE"
10
+fi
11
+GS_EXECUTABLE="$gs"
12
+
13
+exec "$GS_EXECUTABLE" -q -dBATCH -dNODISPLAY -- bdftops.ps "$@"

+ 5
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.bat View File

@@ -0,0 +1,5 @@
1
+@echo off
2
+@rem $Id: bdftops.bat 6300 2005-12-28 19:56:24Z giles $
3
+
4
+call gssetgs.bat
5
+%GSC% -q -dBATCH -dNODISPLAY -- bdftops.ps %1 %2 %3 %4 %5 %6 %7 %8 %9

+ 7
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.cmd View File

@@ -0,0 +1,7 @@
1
+/* $Id: bdftops.cmd 6300 2005-12-28 19:56:24Z giles $ */
2
+/*
3
+ * This file is maintained by a user: if you have any questions about it,
4
+ * please contact Mark Hale (mark.hale@physics.org).
5
+ */
6
+
7
+@gsos2 -q -dBATCH -dNODISPLAY -- bdftops.ps %1 %2 %3 %4 %5 %6 %7 %8 %9

+ 795
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bdftops.ps View File

@@ -0,0 +1,795 @@
1
+%    Copyright (C) 1990, 1995, 1996 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: bdftops.ps 6300 2005-12-28 19:56:24Z giles $
17
+% bdftops.ps
18
+% Convert a BDF file (possibly with (an) associated AFM file(s))
19
+% to a PostScript Type 1 font (without eexec encryption).
20
+% The resulting font will work with any PostScript language interpreter,
21
+% but not with ATM or other font rasterizers lacking a complete interpreter.
22
+
23
+/envBDF 120 dict def
24
+envBDF begin
25
+
26
+% "Import" the image-to-path package.
27
+% This also brings in the Type 1 opcodes (type1ops.ps).
28
+   (impath.ps) runlibfile
29
+
30
+% "Import" the font-writing package.
31
+   (wrfont.ps) runlibfile
32
+   wrfont_dict begin
33
+     /binary_CharStrings false def
34
+     /binary_tokens false def
35
+     /encrypt_CharStrings true def
36
+     /standard_only true def
37
+   end
38
+   /lenIV 0 def
39
+
40
+% Invert the StandardEncoding vector.
41
+   256 dict dup begin
42
+   0 1 255 { dup StandardEncoding exch get exch def } for
43
+   end /StandardDecoding exch def
44
+
45
+% Define the properties copied to FontInfo.
46
+   mark
47
+     (COPYRIGHT) /Notice
48
+     (FAMILY_NAME) /FamilyName
49
+     (FULL_NAME) /FullName
50
+     (WEIGHT_NAME) /Weight
51
+   .dicttomark /properties exch def
52
+
53
+% Define the character sequences for synthesizing missing composite
54
+% characters in the standard encoding.
55
+   mark
56
+     /AE [/A /E]
57
+     /OE [/O /E]
58
+     /ae [/a /e]
59
+     /ellipsis [/period /period /period]
60
+     /emdash [/hyphen /hyphen /hyphen]
61
+     /endash [/hyphen /hyphen]
62
+     /fi [/f /i]
63
+     /fl [/f /l]
64
+     /germandbls [/s /s]
65
+     /guillemotleft [/less /less]
66
+     /guillemotright [/greater /greater]
67
+     /oe [/o /e]
68
+     /quotedblbase [/comma /comma]
69
+   .dicttomark /composites exch def
70
+
71
+% Define the procedure for synthesizing composites.
72
+% This must not be bound.
73
+   /compose
74
+    { exch pop
75
+      FontMatrix Private /composematrix get invertmatrix concat
76
+      0 0 moveto
77
+      dup gsave false charpath pathbbox currentpoint grestore
78
+      6 2 roll setcachedevice show
79
+    } def
80
+% Define the CharString procedure that calls compose, with the string
81
+% on the stack.  This too must remain unbound.
82
+   /compose_proc
83
+    { Private /compose get exec
84
+    } def
85
+
86
+% Define aliases for missing characters similarly.
87
+   mark
88
+     /acute /quoteright
89
+     /bullet /asterisk
90
+     /cedilla /comma
91
+     /circumflex /asciicircum
92
+     /dieresis /quotedbl
93
+     /dotlessi /i
94
+     /exclamdown /exclam
95
+     /florin /f
96
+     /fraction /slash
97
+     /grave /quoteleft
98
+     /guilsinglleft /less
99
+     /guilsinglright /greater
100
+     /hungarumlaut /quotedbl
101
+     /periodcentered /asterisk
102
+     /questiondown /question
103
+     /quotedblleft /quotedbl
104
+     /quotedblright /quotedbl
105
+     /quotesinglbase /comma
106
+     /quotesingle /quoteright
107
+     /tilde /asciitilde
108
+   .dicttomark /aliases exch def
109
+
110
+% Define overstruck characters that can be synthesized with seac.
111
+   mark
112
+    [ /Aacute /Acircumflex /Adieresis /Agrave /Aring /Atilde
113
+      /Ccedilla
114
+      /Eacute /Ecircumflex /Edieresis /Egrave
115
+      /Iacute /Icircumflex /Idieresis /Igrave
116
+      /Lslash
117
+      /Ntilde
118
+      /Oacute /Ocircumflex /Odieresis /Ograve /Otilde
119
+      /Scaron
120
+      /Uacute /Ucircumflex /Udieresis /Ugrave
121
+      /Yacute /Ydieresis
122
+      /Zcaron
123
+      /aacute /acircumflex /adieresis /agrave /aring /atilde
124
+      /ccedilla
125
+      /eacute /ecircumflex /edieresis /egrave
126
+      /iacute /icircumflex /idieresis /igrave
127
+      /lslash
128
+      /ntilde
129
+      /oacute /ocircumflex /odieresis /ograve /otilde
130
+      /scaron
131
+      /uacute /ucircumflex /udieresis /ugrave
132
+      /yacute /ydieresis
133
+      /zcaron
134
+    ]
135
+    { dup =string cvs
136
+      [ exch dup 0 1 getinterval cvn
137
+	exch dup length 1 sub 1 exch getinterval cvn
138
+      ]
139
+    } forall
140
+     /cent [/c /slash]
141
+     /daggerdbl [/bar /equal]
142
+     /divide [/colon /hyphen]
143
+     /sterling [/L /hyphen]
144
+     /yen [/Y /equal]
145
+   .dicttomark /accentedchars exch def
146
+
147
+% ------ Output utilities ------ %
148
+
149
+   /ws {psfile exch writestring} bind def
150
+   /wl {ws (\n) ws} bind def
151
+   /wt {=string cvs ws ( ) ws} bind def
152
+
153
+% ------ BDF file parsing utilities ------ %
154
+
155
+% Define a buffer for reading the BDF file.
156
+   /buffer 400 string def
157
+
158
+% Read a line from the BDF file into the buffer.
159
+% Ignore empty (zero-length) lines.
160
+% Define /keyword as the first word on the line.
161
+% Define /args as the remainder of the line.
162
+% If the keyword is equal to commentword, skip the line.
163
+% (If commentword is equal to a space, never skip.)
164
+   /nextline
165
+    {  { bdfile buffer readline not
166
+	  { (Premature EOF\n) print stop } if
167
+	 dup length 0 ne { exit } if pop	 
168
+       }
169
+      loop
170
+      ( ) search
171
+       { /keyword exch def pop }
172
+       { /keyword exch def () }
173
+      ifelse
174
+      /args exch def
175
+      keyword commentword eq { nextline } if
176
+    } bind def
177
+
178
+% Get a word argument from args.  We do *not* copy the string.
179
+   /warg		% warg -> string
180
+    { args ( ) search
181
+       { exch pop exch }
182
+       { () }
183
+      ifelse  /args exch def
184
+    } bind def
185
+
186
+% Get an integer argument from args.
187
+   /iarg		% iarg -> int
188
+    { warg cvi
189
+    } bind def
190
+
191
+% Get a numeric argument from args.
192
+   /narg		% narg -> int|real
193
+    { warg cvr
194
+      dup dup cvi eq { cvi } if
195
+    } bind def
196
+
197
+% Convert the remainder of args into a string.
198
+   /remarg		% remarg -> string
199
+    { args copystring
200
+    } bind def
201
+
202
+% Get a string argument that occupies the remainder of args.
203
+   /sarg		% sarg -> string
204
+    { args (") anchorsearch
205
+       { pop /args exch def } { pop } ifelse
206
+      args args length 1 sub get (") 0 get eq
207
+       { args 0 args length 1 sub getinterval /args exch def } if
208
+      args copystring
209
+    } bind def
210
+
211
+% Check that the keyword is the expected one.
212
+   /checkline		% (EXPECTED-KEYWORD) checkline ->
213
+    { dup keyword ne
214
+       { (Expected ) print =
215
+         (Line=) print keyword print ( ) print args print (\n) print stop
216
+       } if
217
+      pop
218
+    } bind def
219
+
220
+% Read a line and check its keyword.
221
+   /getline		% (EXPECTED-KEYWORD) getline ->
222
+    { nextline checkline
223
+    } bind def
224
+
225
+% Find the first/last non-zero bit of a non-zero byte.
226
+   /fnzb
227
+    { 0 { exch dup 128 ge { pop exit } { dup add exch 1 add } ifelse }
228
+      loop
229
+    } bind def
230
+   /lnzb
231
+    { 7 { exch dup 1 and 0 ne { pop exit } { -1 bitshift exch 1 sub } ifelse }
232
+      loop
233
+    } bind def
234
+
235
+% ------ Type 1 encoding utilities ------ %
236
+
237
+% Parse the side bearing and width information that begins a CharString.
238
+% Arguments: charstring.  Result: sbx sby wx wy substring.
239
+   /parsesbw
240
+    { mark exch lenIV
241
+       {		% stack: mark ... string dropcount
242
+         dup 2 index length exch sub getinterval
243
+	 dup 0 get dup 32 lt { pop exit } if
244
+	 dup 246 le
245
+	  { 139 sub exch 1 }
246
+	  { dup 250 le
247
+	     { 247 sub 8 bitshift 108 add 1 index 1 get add exch 2 }
248
+	     { dup 254 le
249
+		{ 251 sub 8 bitshift 108 add 1 index 1 get add neg exch 2 }
250
+		{ pop dup 1 get 128 xor 128 sub
251
+		  8 bitshift 1 index 2 get add
252
+		  8 bitshift 1 index 3 get add
253
+		  8 bitshift 1 index 4 get add exch 5
254
+		} ifelse
255
+	     } ifelse
256
+	  } ifelse
257
+       } loop
258
+      counttomark 3 eq { 0 3 1 roll 0 exch } if
259
+      6 -1 roll pop
260
+    } bind def 
261
+
262
+% Find the side bearing and width information that begins a CharString.
263
+% Arguments: charstring.  Result: charstring sizethroughsbw.
264
+   /findsbw
265
+    { dup parsesbw 4 { exch pop } repeat skipsbw
266
+    } bind def
267
+   /skipsbw		% charstring sbwprefix -> sizethroughsbw
268
+    { length 1 index length exch sub
269
+      2 copy get 12 eq { 2 } { 1 } ifelse add
270
+    } bind def
271
+
272
+% Encode a number, and append it to a string.
273
+% Arguments: str num.  Result: newstr.
274
+   /concatnum
275
+    { dup dup -107 ge exch 107 le and
276
+       { 139 add 1 string dup 0 3 index put }
277
+       { dup dup -1131 ge exch 1131 le and
278
+          { dup 0 ge { 16#f694 } { neg 16#fa94 } ifelse add
279
+	    2 string dup 0 3 index -8 bitshift put
280
+	    dup 1 3 index 255 and put
281
+	  }
282
+	  { 5 string dup 0 255 put exch
283
+	    2 copy 1 exch -24 bitshift 255 and put
284
+	    2 copy 2 exch -16 bitshift 255 and put
285
+	    2 copy 3 exch -8 bitshift 255 and put
286
+	    2 copy 4 exch 255 and put
287
+	    exch
288
+	  }
289
+	 ifelse
290
+       }
291
+      ifelse exch pop concatstrings
292
+    } bind def
293
+
294
+% ------ Point arithmetic utilities ------ %
295
+
296
+   /ptadd { exch 4 -1 roll add 3 1 roll add } bind def
297
+   /ptexch { 4 2 roll } bind def
298
+   /ptneg { neg exch neg exch } bind def
299
+   /ptpop { pop pop } bind def
300
+   /ptsub { ptneg ptadd } bind def
301
+
302
+% ------ The main program ------ %
303
+
304
+   /readBDF		% <infilename> <outfilename> <fontname>
305
+			%   <encodingname> <uniqueID> <xuid> readBDF -> <font>
306
+    { /xuid exch def		% may be null
307
+      /uniqueID exch def	% may be -1
308
+      /encodingname exch def
309
+	/encoding encodingname cvx exec def
310
+      /fontname exch def
311
+      /psname exch def
312
+      /bdfname exch def
313
+      gsave		% so we can set the CTM to the font matrix
314
+
315
+%  Open the input files.  We don't open the output file until
316
+%  we've done a minimal validity check on the input.
317
+      bdfname (r) file /bdfile exch def
318
+      /commentword ( ) def
319
+
320
+%  Check for the STARTFONT.
321
+      (STARTFONT) getline
322
+      args (2.1) ne { (Not version 2.1\n) print stop } if
323
+
324
+%  Initialize the font.
325
+      /Font 20 dict def
326
+      Font begin
327
+      /FontName fontname def
328
+      /PaintType 0 def
329
+      /FontType 1 def
330
+      uniqueID 0 gt { /UniqueID uniqueID def } if
331
+      xuid null ne { /XUID xuid def } if
332
+      /Encoding encoding def
333
+      /FontInfo 20 dict def
334
+      /Private 20 dict def
335
+      currentdict end currentdict end
336
+      exch begin begin		% insert font above environment
337
+
338
+%  Initialize the Private dictionary in the font.
339
+      Private begin
340
+      /-! {string currentfile exch readhexstring pop} readonly def
341
+      /-| {string currentfile exch readstring pop} readonly def
342
+      /|- {readonly def} readonly def
343
+      /| {readonly put} readonly def
344
+      /BlueValues [] def
345
+      /lenIV lenIV def
346
+      /MinFeature {16 16} def
347
+      /password 5839 def
348
+      /UniqueID uniqueID def
349
+      end		% Private
350
+
351
+%  Invert the Encoding, for synthesizing composite characters.
352
+      /decoding encoding length dict def
353
+      0 1 encoding length 1 sub
354
+       { dup encoding exch get exch decoding 3 1 roll put }
355
+      for
356
+
357
+%  Now open the output file.
358
+      psname (w) file /psfile exch def
359
+
360
+%  Put out a header compatible with the Adobe "standard".
361
+      (%!FontType1-1.0: ) ws fontname wt (000.000) wl
362
+      (% This is a font description converted from ) ws
363
+	bdfname wl
364
+      (%   by bdftops running on ) ws
365
+      statusdict /product get ws ( revision ) ws
366
+      revision =string cvs ws (.) wl
367
+
368
+%  Copy the initial comments, up to FONT.
369
+      true
370
+       { nextline
371
+	 keyword (COMMENT) ne {exit} if
372
+	  { (% Here are the initial comments from the BDF file:\n%) wl
373
+	  } if false
374
+	 (%) ws remarg wl
375
+       } loop pop
376
+      () wl
377
+      /commentword (COMMENT) def	% do skip comments from now on
378
+
379
+%  Read and process the FONT, SIZE, and FONTBOUNDINGBOX.
380
+      % If we cared about FONT, we'd use it here.  If the BDF files
381
+      % from MIT had PostScript names rather than X names, we would
382
+      % care; but what's there is unusable, so we discard FONT.
383
+      % The FONTBOUNDINGBOX may not be reliable, so we discard it too.
384
+      (FONT) checkline
385
+      (SIZE) getline
386
+	/pointsize iarg def   /xres iarg def   /yres iarg def
387
+      (FONTBOUNDINGBOX) getline
388
+      nextline
389
+
390
+%  Initialize the font bounding box bookeeping.
391
+      /fbbxo 1000 def
392
+      /fbbyo 1000 def
393
+      /fbbxe -1000 def
394
+      /fbbye -1000 def
395
+
396
+%  Read and process the properties.  We only care about a few of them.
397
+      keyword (STARTPROPERTIES) eq
398
+       { iarg
399
+          { nextline
400
+	    properties keyword known
401
+	     { FontInfo properties keyword get sarg readonly put
402
+	     } if
403
+	  } repeat
404
+         (ENDPROPERTIES) getline
405
+	 nextline
406
+       } if
407
+
408
+%  Compute and set the FontMatrix.
409
+      Font /FontMatrix
410
+       [ 0.001 0 0 0.001 xres mul yres div 0 0 ] readonly
411
+      dup setmatrix put
412
+
413
+%  Read and process the header for the bitmaps.
414
+      (CHARS) checkline
415
+	/ccount iarg def
416
+
417
+%  Initialize the CharStrings dictionary.
418
+      /charstrings ccount
419
+	composites length add
420
+	aliases length add
421
+	accentedchars length add
422
+	1 add dict def		% 1 add for .notdef
423
+      /isfixedwidth true def
424
+      /fixedwidth null def
425
+      /subrcount 0 def
426
+      /subrs [] def
427
+
428
+%  Read the bitmap data.  This reads the remainder of the file.
429
+%  We do this before processing the bitmaps so that we can compute
430
+%  the correct FontBBox first.
431
+      /chardata ccount dict def
432
+      ccount -1 1
433
+       { (STARTCHAR) getline
434
+           /charname remarg def
435
+	 (ENCODING) getline
436
+	   /eindex iarg def
437
+	   eindex dup 0 ge exch 255 le and
438
+	    { charname /charname StandardEncoding eindex get def
439
+	      charname /.notdef eq eindex 0 gt and
440
+	       { /charname (A) eindex =string cvs concatstrings cvn def
441
+	       }
442
+	      if
443
+	      (/) print charname =string cvs print (,) print print
444
+	    }
445
+	    { (/) print charname print
446
+	    }
447
+	   ifelse
448
+	   10 mod 1 eq { (\n) print flush } if
449
+	 (SWIDTH) getline
450
+	   /swx iarg pointsize mul 1000 div xres mul 72 div def
451
+	   /swy iarg pointsize mul 1000 div xres mul 72 div def
452
+	 (DWIDTH) getline		% Ignore, use SWIDTH instead
453
+	 (BBX) getline
454
+	   /bbw iarg def  /bbh iarg def  /bbox iarg def  /bboy iarg def
455
+	 nextline
456
+	 keyword (ATTRIBUTES) eq
457
+	  { nextline
458
+	  } if
459
+	 (BITMAP) checkline
460
+
461
+% Update the font bounding box.
462
+	 /fbbxo fbbxo bbox .min def
463
+	 /fbbyo fbbyo bboy .min def
464
+	 /fbbxe fbbxe bbox bbw add .max def
465
+	 /fbbye fbbye bboy bbh add .max def
466
+
467
+% Read the bits for this character.
468
+	 /raster bbw 7 add 8 idiv def
469
+	 /cbits raster bbh mul string def
470
+	 cbits length 0 gt
471
+	  { 0 raster cbits length raster sub
472
+	      { cbits exch raster getinterval
473
+	        bdfile buffer readline not
474
+	         { (EOF in bitmap\n) print stop } if
475
+		    % stack has <cbits.interval> <buffer.interval>
476
+	        0 () /SubFileDecode filter
477
+	        exch 2 copy readhexstring pop pop pop closefile
478
+	      } for
479
+	  } if
480
+
481
+         (ENDCHAR) getline
482
+
483
+% Save the character data.
484
+	 chardata charname [swx swy bbw bbh bbox bboy cbits] put
485
+       } for
486
+
487
+      (ENDFONT) getline
488
+
489
+% Allocate the buffers for the bitmap and the outline,
490
+% according to the font bounding box.
491
+      /fbbw fbbxe fbbxo sub def
492
+      /fbbh fbbye fbbyo sub def
493
+      /fraster fbbw 7 add 8 idiv def
494
+      /bits fraster fbbh mul 200 .max 65535 .min string def
495
+      /outline bits length 16 mul 65535 .min string def
496
+
497
+%  Process the characters.
498
+      chardata
499
+       { exch /charname exch def  aload pop
500
+	 /cbits exch def
501
+	 /bboy exch def   /bbox exch def
502
+	 /bbh exch def   /bbw exch def
503
+	 /swy exch def   /swx exch def
504
+
505
+% The bitmap handed to type1imagepath must have the correct height,
506
+% because type1imagepath uses this to compute the scale factor,
507
+% so we have to clear the unused parts of it.
508
+	 /raster bbw 7 add 8 idiv def
509
+	 bits dup 0 1 raster fbbh mul 1 sub
510
+	  { 0 put dup } for
511
+	 pop pop
512
+	 bits raster fbbh bbh sub mul cbits putinterval
513
+
514
+%  Compute the font entry, converting the bitmap to an outline.
515
+	 bits 0 raster fbbh mul getinterval	% the bitmap image
516
+	 bbw   fbbh				% bitmap width & height
517
+	 swx   swy				% width x & y
518
+	 bbox neg   bboy neg			% origin x & y
519
+	 	% Account for lenIV when converting the outline.
520
+	 outline  lenIV  outline length lenIV sub  getinterval
521
+         type1imagepath
522
+         length lenIV add
523
+	 outline exch 0 exch getinterval
524
+
525
+% Check for a fixed width font.
526
+	 isfixedwidth
527
+	  { fixedwidth null eq
528
+	     { /fixedwidth swx def }
529
+	     { fixedwidth swx ne { /isfixedwidth false def } if }
530
+	    ifelse
531
+	  } if
532
+
533
+% Finish up the character.
534
+	 copystring
535
+	 charname exch charstrings 3 1 roll put
536
+       } forall
537
+
538
+%  Add CharStrings entries for aliases.
539
+      aliases
540
+       { charstrings 2 index known not charstrings 2 index known and
541
+          { charstrings exch get charstrings 3 1 roll put
542
+	  }
543
+	  { pop pop
544
+	  }
545
+	 ifelse
546
+       }
547
+      forall
548
+
549
+%  If this is not a fixed-width font, synthesize missing characters
550
+%  out of available ones.
551
+      isfixedwidth not
552
+       { false composites
553
+	  { 1 index charstrings exch known not
554
+	    1 index { decoding exch known and } forall
555
+	     { ( /) print 1 index bits cvs print
556
+	       /combine exch def
557
+	       0 1 combine length 1 sub
558
+		{ dup combine exch get decoding exch get
559
+		  bits 3 1 roll put
560
+		} for
561
+	       bits 0 combine length getinterval copystring
562
+	       [ exch /compose_proc load aload pop ] cvx
563
+	       charstrings 3 1 roll put
564
+	       pop true
565
+	     }
566
+	     { pop pop }
567
+	    ifelse
568
+	  }
569
+	 forall flush
570
+	  { Private /composematrix matrix put
571
+	    Private /compose /compose load put
572
+	  }
573
+	 if
574
+       }
575
+      if
576
+
577
+%  Synthesize accented characters with seac if needed and possible.
578
+      accentedchars
579
+       { aload pop /accent exch def /base exch def
580
+         buffer cvs /accented exch def
581
+	 charstrings accented known not
582
+	 charstrings base known and
583
+	 charstrings accent known and
584
+	 StandardDecoding base known and
585
+	 StandardDecoding accent known and
586
+	 encoding StandardDecoding base get get base eq and
587
+	 encoding StandardDecoding accent get get accent eq and
588
+	  { ( /) print accented print
589
+	    charstrings base get findsbw 0 exch getinterval
590
+	    /acstring exch def		% start with sbw of base
591
+	    charstrings accent get parsesbw
592
+	    4 { pop } repeat		% just leave sbx
593
+	    acstring exch concatnum
594
+	    0 concatnum 0 concatnum		% adx ady
595
+	    decoding base get concatnum		% bchar
596
+	    decoding accent get concatnum	% achar
597
+	    s_seac concatstrings
598
+	    charstrings exch accented copystring exch put
599
+	  } if
600
+       } forall
601
+
602
+%  Make a CharStrings entry for .notdef.
603
+      outline lenIV <8b8b0d0e> putinterval	% 0 0 hsbw endchar
604
+      charstrings /.notdef outline 0 lenIV 4 add getinterval copystring put
605
+
606
+%  Encrypt the CharStrings and Subrs (in place).
607
+      charstrings
608
+       {	% Be careful not to encrypt aliased characters twice,
609
+		% since they share their CharString.
610
+	 aliases 2 index known
611
+	  { charstrings aliases 3 index get .knownget
612
+	     { 1 index ne }
613
+	     { true }
614
+	    ifelse
615
+	  }
616
+	  { true
617
+	  }
618
+	 ifelse
619
+	 1 index type /stringtype eq and
620
+          { 4330 exch dup .type1encrypt exch pop
621
+	    readonly charstrings 3 1 roll put
622
+	  }
623
+	  { pop pop
624
+	  }
625
+	 ifelse
626
+       }
627
+      forall
628
+      0 1 subrcount 1 sub
629
+       { dup subrs exch get
630
+	 4330 exch dup .type1encrypt exch pop
631
+	 subrs 3 1 roll put
632
+       }
633
+      for
634
+
635
+%  Make most of the remaining entries in the font dictionaries.
636
+
637
+% The Type 1 font machinery really only works with a 1000 unit
638
+% character coordinate system.  Set this up here, by computing the factor
639
+% to make the X entry in the FontMatrix come out at exactly 0.001.
640
+      /fontscale 1000 fbbh div yres mul xres div def
641
+      Font /FontBBox
642
+       [ fbbxo fontscale mul
643
+	 fbbyo fontscale mul
644
+	 fbbxe fontscale mul
645
+	 fbbye fontscale mul
646
+       ] cvx readonly put
647
+      Font /CharStrings charstrings readonly put
648
+      FontInfo /FullName known not
649
+       { % Some programs insist on FullName being present.
650
+         FontInfo /FullName FontName dup length string cvs put
651
+       }
652
+      if
653
+      FontInfo /isFixedPitch isfixedwidth put
654
+      subrcount 0 gt
655
+       { Private /Subrs subrs 0 subrcount getinterval readonly put
656
+       } if
657
+
658
+%  Determine the italic angle and underline position
659
+%  by actually installing the font.
660
+      save
661
+      /_temp_ Font definefont setfont
662
+      [1000 0 0 1000 0 0] setmatrix		% mitigate rounding problems
663
+% The italic angle is the multiple of -5 degrees
664
+% that minimizes the width of the 'I'.
665
+      0 9999 0 5 85
666
+       { dup rotate
667
+         newpath 0 0 moveto (I) false charpath
668
+	 dup neg rotate
669
+         pathbbox pop exch pop exch sub
670
+	 dup 3 index lt { 4 -2 roll } if
671
+	 pop pop
672
+       }
673
+      for pop
674
+% The underline position is halfway between the bottom of the 'A'
675
+% and the bottom of the FontBBox.
676
+      newpath 0 0 moveto (A) false charpath
677
+      FontMatrix concat
678
+      pathbbox pop pop exch pop
679
+%  Put the values in FontInfo.
680
+      3 -1 roll
681
+      restore
682
+      Font /FontBBox get 1 get add 2 div cvi
683
+      dup FontInfo /UnderlinePosition 3 -1 roll put
684
+      2 div abs FontInfo /UnderlineThickness 3 -1 roll put
685
+      FontInfo /ItalicAngle 3 -1 roll put
686
+
687
+%  Clean up and finish.
688
+      grestore
689
+      bdfile closefile
690
+      Font currentdict end end begin		% remove font from dict stack
691
+      (\n) print flush
692
+
693
+    } bind def
694
+
695
+% ------ Reader for AFM files ------ %
696
+
697
+% Dictionary for looking up character keywords
698
+   /cmdict 6 dict dup begin
699
+      /C { /c iarg def } def
700
+      /N { /n warg copystring def } def
701
+      /WX { /w narg def } def
702
+      /W0X /WX load def
703
+      /W /WX load def
704
+      /W0 /WX load def
705
+   end def
706
+
707
+   /readAFM		% fontdict afmfilename readAFM -> fontdict
708
+    { (r) file /bdfile exch def
709
+      /Font exch def
710
+      /commentword (Comment) def
711
+
712
+%  Check for the StartFontMetrics.
713
+      (StartFontMetrics) getline
714
+      args cvr 2.0 lt { (Not version 2.0 or greater\n) print stop } if
715
+
716
+%  Look for StartCharMetrics, then parse the character metrics.
717
+%  The only information we care about is the X width.
718
+      /metrics 0 dict def
719
+       { nextline
720
+         keyword (EndFontMetrics) eq { exit } if
721
+	 keyword (StartCharMetrics) eq
722
+	  { iarg dup dict /metrics exch def
723
+	     { /c -1 def /n null def /w null def
724
+	       nextline buffer
725
+		{ token not { exit } if
726
+		  dup cmdict exch known
727
+		   { exch /args exch def   cmdict exch get exec   args }
728
+		   { pop }
729
+		  ifelse
730
+		} loop
731
+	       c 0 ge n null ne or w null ne and
732
+		{ n null eq { /n Font /Encoding get c get def } if
733
+		  metrics n w put
734
+		}
735
+	       if
736
+	     }
737
+	    repeat
738
+	    (EndCharMetrics) getline
739
+	  } if
740
+       } loop
741
+
742
+%  Insert the metrics in the font.
743
+       metrics length 0 ne
744
+	{ Font /Metrics metrics readonly put
745
+	} if
746
+      Font
747
+    } bind def
748
+
749
+end		% envBDF
750
+
751
+% Enter the main program in the current dictionary.
752
+/bdfafmtops		% infilename afmfilename* outfilename fontname
753
+			%   encodingname uniqueID xuid
754
+ { envBDF begin
755
+     7 -2 roll exch 7 2 roll	% afm* in out fontname encodingname uniqueID xuid
756
+     readBDF		% afm* font
757
+     exch { readAFM } forall
758
+     save exch
759
+     dup /FontName get exch definefont
760
+     setfont
761
+     psfile writefont
762
+     restore
763
+     psfile closefile
764
+   end
765
+ } bind def
766
+
767
+% If the program was invoked from the command line, run it now.
768
+[ shellarguments
769
+ { counttomark 4 ge
770
+    { dup 0 get
771
+      dup 48 ge exch 57 le and		% last arg starts with a digit?
772
+       { /StandardEncoding }		% no encodingname
773
+       { cvn }				% have encodingname
774
+      ifelse
775
+      exch (.) search			% next-to-last arg has . in it?
776
+       { mark 4 1 roll			% have xuid
777
+          { cvi exch pop exch (.) search not { exit } if }
778
+	 loop cvi ]
779
+	 3 -1 roll cvi exch
780
+       }
781
+       { cvi null			% no xuid
782
+       }
783
+      ifelse
784
+      counttomark 5 roll
785
+      counttomark 6 sub array astore
786
+      7 -2 roll cvn 7 -3 roll		% make sure fontname is a name
787
+      bdfafmtops
788
+    }
789
+    { cleartomark
790
+      (Usage:\n  bdftops xx.bdf [yy1.afm ...] zz.gsf fontname uniqueID [xuid] [encodingname]\n) print flush
791
+      mark
792
+    }
793
+   ifelse
794
+ }
795
+if pop

+ 17
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8.rpd View File

@@ -0,0 +1,17 @@
1
+
2
+StartEntry: U_CanonBJC8200
3
+GSDriver: uniprint 
4
+Description: {Canon BJC-8200 (UP)}
5
+About: { \
6
+	 Canon BJC-8200 uniprint driver settings.\
7
+       }
8
+Resolution: {NA} {NA} {}
9
+  BitsPerPixel: {bj8pp12f} {1200x1200DpI, photo paper pro, color, rendered}
10
+  BitsPerPixel: {bj8hg12f} {1200x1200DpI, high gloss photo film, color, rendered}
11
+  BitsPerPixel: {bj8gc12f} {1200x1200DpI, glossy photo cards, color, rendered}
12
+  BitsPerPixel: {bj8oh06n} {600x600DpI, transparencies, color, rendered}
13
+  BitsPerPixel: {bj8ts06n} {600x600DpI, t-shirt transfer, color, rendered}
14
+  BitsPerPixel: {bj8pa06n} {600x600DpI, plain paper, color, rendered}
15
+
16
+EndEntry
17
+#

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8gc12f.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (1200DpI)^2, glossy photo card, high quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r1200x1200
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 04b0 04b0
40
+   1b28 63 0300 3005 04
41
+   1b28 6c 0200 340d
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8hg12f.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (1200DpI)^2, high gloss photo, high quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r1200x1200
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 04b0 04b0
40
+   1b28 63 0300 3006 04
41
+   1b28 6c 0200 3406
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8oh06n.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (600DpI)^2, OHP, normal quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r600x600
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 0258 0258
40
+   1b28 63 0300 3002 03
41
+   1b28 6c 0200 3402
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8pa06n.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (600DpI)^2, plain paper, normal quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r600x600
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 0258 0258
40
+   1b28 63 0300 3000 03
41
+   1b28 6c 0200 3400
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8pp12f.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (1200DpI)^2, professional photo paper, highest quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r1200x1200
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 04b0 04b0
40
+   1b28 63 0300 3009 04
41
+   1b28 6c 0200 340d
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bj8ts06n.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 8200, (600DpI)^2, t-shirt transfer, normal quality"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYKgenerate
6
+-dupRendering=/FSCMYK32
7
+-dupOutputFormat=/Canon
8
+-r600x600
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b 4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 71 0100 01
39
+   1b28 64 0400 0258 0258
40
+   1b28 63 0300 3003 03
41
+   1b28 6c 0200 3403
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a0.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, plain paper high speed, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 100200
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1400
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a1.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, plain paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 100110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1400
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a2.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, coated paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 101110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1410
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a3.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, transparency film, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 102110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1420
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 45
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a4.upp View File

@@ -0,0 +1,45 @@
1
+-supModel="Canon BJC 610, 360x360DpI, back print film, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupYFlip
10
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
11
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
12
+-dupBlackTransfer="{
13
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
14
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
15
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
16
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
17
+}"
18
+-dupCyanTransfer="{
19
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
20
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
21
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
22
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
23
+}"
24
+-dupMagentaTransfer="{
25
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
26
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
27
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
28
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
29
+}"
30
+-dupYellowTransfer="{
31
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
32
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
33
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
34
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
35
+}"
36
+-dupBeginPageCommand="<
37
+   1b5b4b 0200 000f
38
+   1b28 62 0100 01
39
+   1b28 63 0300 103110
40
+   1b28 64 0200 0168
41
+   1b28 6c 0200 1430
42
+   1b28 67 0100 E5
43
+>"
44
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
45
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a5.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, fabric sheet, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 104110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1850
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a6.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, glossy paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 105110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1460
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a7.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, high gloss film, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 106110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 1470
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610a8.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 360x360DpI, high resolution paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r360x360
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0058 0.0164 0.0301 0.0463 0.0648 0.0851 0.1073 
13
+0.1311 0.1564 0.1832 0.2114 0.2408 0.2716 0.3035 0.3366 
14
+0.3708 0.4061 0.4425 0.4798 0.5182 0.5576 0.5978 0.6391 
15
+0.6812 0.7242 0.7681 0.8128 0.8584 0.9048 0.9520 1.0000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
19
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
20
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
21
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
25
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
26
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
27
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
31
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
32
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
33
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 107110
39
+   1b28 64 0200 0168
40
+   1b28 6c 0200 14a0
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b1.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, plain paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537 
13
+0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683 
14
+0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195 
15
+0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204 
19
+0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937 
20
+0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202 
21
+0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204 
25
+0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937 
26
+0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202 
27
+0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0004 0.0017 0.0037 0.0067 0.0104 0.0150 0.0204 
31
+0.0266 0.0337 0.0416 0.0504 0.0599 0.0703 0.0816 0.0937 
32
+0.1066 0.1203 0.1349 0.1503 0.1665 0.1836 0.2015 0.2202 
33
+0.2398 0.2601 0.2814 0.3034 0.3263 0.3501 0.3746 0.4000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 101110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 1410
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b2.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, coated paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537 
13
+0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683 
14
+0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195 
15
+0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
19
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
20
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
21
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
25
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
26
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
27
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
31
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
32
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
33
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 101110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 1410
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b3.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, transparency film, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
19
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
20
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
21
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
25
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
26
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
27
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
31
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
32
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
33
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 102110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 1420
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 45
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b4.upp View File

@@ -0,0 +1,45 @@
1
+-supModel="Canon BJC 610, 720x720DpI, back print film, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupYFlip
10
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
11
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
12
+-dupBlackTransfer="{
13
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
14
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
15
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
16
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
17
+}"
18
+-dupCyanTransfer="{
19
+0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229 
20
+0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054 
21
+0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477 
22
+0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500 
23
+}"
24
+-dupMagentaTransfer="{
25
+0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229 
26
+0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054 
27
+0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477 
28
+0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500 
29
+}"
30
+-dupYellowTransfer="{
31
+0.0000 0.0005 0.0019 0.0042 0.0075 0.0117 0.0169 0.0229 
32
+0.0300 0.0379 0.0468 0.0567 0.0674 0.0791 0.0918 0.1054 
33
+0.1199 0.1353 0.1517 0.1690 0.1873 0.2065 0.2266 0.2477 
34
+0.2697 0.2927 0.3165 0.3414 0.3671 0.3938 0.4214 0.4500 
35
+}"
36
+-dupBeginPageCommand="<
37
+   1b5b4b 0200 000f
38
+   1b28 62 0100 01
39
+   1b28 63 0300 103110
40
+   1b28 64 0200 02d0
41
+   1b28 6c 0200 1430
42
+   1b28 67 0100 E5
43
+>"
44
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
45
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b6.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, glossy paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0029 0.0082 0.0151 0.0232 0.0324 0.0426 0.0537 
13
+0.0655 0.0782 0.0916 0.1057 0.1204 0.1358 0.1517 0.1683 
14
+0.1854 0.2030 0.2212 0.2399 0.2591 0.2788 0.2989 0.3195 
15
+0.3406 0.3621 0.3840 0.4064 0.4292 0.4524 0.4760 0.5000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
19
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
20
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
21
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
25
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
26
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
27
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
31
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
32
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
33
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 105110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 1460
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b7.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, high gloss paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
19
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
20
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
21
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
25
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
26
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
27
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
31
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
32
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
33
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 106110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 1470
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/bjc610b8.upp View File

@@ -0,0 +1,44 @@
1
+-supModel="Canon BJC 610, 720x720DpI, high resolution paper, color, rendered"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Canon
8
+-r720x720
9
+-dupMargins="{ 8.23 20.44 11.05 7.9 }"
10
+-dupOutputComponentOrder="{ 3 2 1 0 }"  
11
+-dupBlackTransfer="{
12
+0.0000 0.0008 0.0033 0.0075 0.0133 0.0208 0.0300 0.0408 
13
+0.0533 0.0674 0.0832 0.1007 0.1199 0.1407 0.1632 0.1873 
14
+0.2131 0.2406 0.2697 0.3005 0.3330 0.3671 0.4029 0.4404 
15
+0.4795 0.5203 0.5627 0.6069 0.6527 0.7001 0.7492 0.8000 
16
+}"
17
+-dupCyanTransfer="{
18
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
19
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
20
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
21
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
22
+}"
23
+-dupMagentaTransfer="{
24
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
25
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
26
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
27
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
28
+}"
29
+-dupYellowTransfer="{
30
+0.0000 0.0005 0.0021 0.0047 0.0083 0.0130 0.0187 0.0255 
31
+0.0333 0.0421 0.0520 0.0630 0.0749 0.0879 0.1020 0.1171 
32
+0.1332 0.1504 0.1686 0.1878 0.2081 0.2294 0.2518 0.2752 
33
+0.2997 0.3252 0.3517 0.3793 0.4079 0.4376 0.4683 0.5000 
34
+}"
35
+-dupBeginPageCommand="<
36
+   1b5b4b 0200 000f
37
+   1b28 62 0100 01
38
+   1b28 63 0300 107110
39
+   1b28 64 0200 02d0
40
+   1b28 6c 0200 14a0
41
+   1b28 67 0100 E5
42
+>"
43
+-dupEndJobCommand="(\033\050b\001\000\000\033@)"
44
+-dupEndPageCommand="(\014)"

+ 56
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/caption.ps View File

@@ -0,0 +1,56 @@
1
+%!
2
+%    Copyright (C) 1995 Aladdin Enterprises.  All rights reserved.
3
+% 
4
+% This software is provided AS-IS with no warranty, either express or
5
+% implied.
6
+% 
7
+% This software is distributed under license and may not be copied,
8
+% modified or distributed except as expressly authorized under the terms
9
+% of the license contained in the file LICENSE in this distribution.
10
+% 
11
+% For more information about licensing, please refer to
12
+% http://www.ghostscript.com/licensing/. For information on
13
+% commercial licensing, go to http://www.artifex.com/licensing/ or
14
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
15
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
16
+
17
+% $Id: caption.ps 6300 2005-12-28 19:56:24Z giles $
18
+% Add a "caption" to the bottom of each page.
19
+/captionsize 20 def
20
+/caption
21
+ { /Helvetica //captionsize selectfont
22
+   (Printed by Aladdin's XXYYZZ) show
23
+   /Symbol //captionsize selectfont
24
+   (\324) show		% trademarkserif
25
+   /Helvetica //captionsize selectfont
26
+   ( product) show
27
+ } bind def
28
+
29
+10 dict begin
30
+gsave
31
+  initgraphics
32
+  clippath pathbbox
33
+  pop exch 36 add /by exch def
34
+		% We can't use stringwidth, so we have to show and measure.
35
+  gsave
36
+    0 0 0 0 rectclip
37
+    0 0 moveto caption currentpoint pop /bw exch def
38
+  grestore
39
+  add bw sub 2 div /bx exch def
40
+		% We don't have the font bbox available, so we guess.
41
+  /bh captionsize 1.05 mul def
42
+grestore
43
+/showcaption
44
+ { gsave
45
+     initgraphics
46
+     //bx 9 sub //by 9 sub //bw 18 add //bh 18 add
47
+     1 setgray 4 copy rectfill 0 setgray 1.5 setlinewidth rectstroke
48
+     //bx //by moveto //caption exec
49
+   grestore
50
+ } bind def
51
+<< /EndPage [
52
+   /showcaption load /exec load
53
+   currentpagedevice /EndPage get /exec load
54
+   ] cvx
55
+>> setpagedevice
56
+end

+ 74
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cat.ps View File

@@ -0,0 +1,74 @@
1
+%    Copyright (C) 1996-2003 Artifex Software, Inc.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+%
16
+% $Id: cat.ps 8331 2008-02-05 11:07:00Z kens $
17
+%
18
+% Appends one file to another. Primarily used to overcome the 
19
+% 'copy' limitation of Windows command shell for ps2epsi
20
+%
21
+% the files to be appended are given by the environament
22
+% variables %infile% and %outfile%. %infile% is appended to
23
+% %outfile%
24
+%
25
+
26
+/datastring 1024 string def
27
+
28
+{
29
+	(outfile) getenv 
30
+	{
31
+		/outfilename exch def
32
+		(infile) getenv
33
+		{
34
+			/infilename exch def
35
+	
36
+			infilename status 
37
+			{
38
+				pop pop pop pop outfilename status 
39
+				{ 
40
+					pop pop pop pop 
41
+					infilename (r) file /infile exch def 
42
+					outfilename (a+) file /outfile exch def 
43
+					{
44
+						infile datastring readstring
45
+						{
46
+							outfile exch writestring
47
+						}
48
+						{
49
+							dup length 0 gt
50
+							{outfile exch writestring} {pop} ifelse
51
+							exit
52
+						} ifelse
53
+					} loop
54
+					infile closefile
55
+					outfile closefile
56
+				} 
57
+				{
58
+					(Failed to find file ) print outfilename ==
59
+				} ifelse
60
+			}
61
+			{
62
+				(Failed to find file ) print infilename ==
63
+			} ifelse
64
+		}
65
+		{
66
+			(Couldn't find %infile% environment variable) ==
67
+		} ifelse
68
+	} 
69
+	{
70
+		(Couldn't find %outfile% environment variable) ==
71
+	}
72
+	ifelse
73
+} bind 
74
+exec

+ 404
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cbjc600.ppd View File

@@ -0,0 +1,404 @@
1
+*PPD-Adobe: "4.1"
2
+*% Adobe Systems PostScript(R) Printer Description File
3
+*% Copyright 1995 Yves Arrouye for AFPL Ghostscript with Level 2 PS.
4
+*% All Rights Reserved. 
5
+*% This file may be distributed as part of GNU Ghostscript and/or AFPL
6
+*% Ghostscript, under the same terms and conditions as Ghostscript.
7
+*% End of Copyright statement
8
+*FormatVersion: "4.1"
9
+*FileVersion: "1.0"
10
+*LanguageVersion: English
11
+*PCFileName: "CBJC600.PPD"
12
+*Product: "(Canon Bubble Jet Color 600)"
13
+*PSVersion: "(2010.351) 0"
14
+*ModelName: "Canon Bubble Jet Color 600"
15
+*NickName: "BJC-600"
16
+
17
+*% This file is not complete, and may lack some useful information...
18
+
19
+*% Note: the default transfer function should be set to Null if Ghostscript
20
+*% exhibit a bug making magenta appear while printing in gray levels...
21
+*% Note: if you print on A4 paper by default, change *Default values (the
22
+*% default is Letter here).
23
+
24
+*% ==============Constraints =================
25
+
26
+*UIConstraints: *BitsPerPixel None *ColorModel DeviceCMYK
27
+*UIConstraints: *BitsPerPixel None *ColorModel DeviceRGB
28
+*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceRGB
29
+*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceGray
30
+*UIConstraints: *BitsPerPixel 24 *ColorModel DeviceGray
31
+*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceRGB
32
+*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceGray
33
+
34
+*UIConstraints: *ColorModel DeviceCMYK *BitsPerPixel None
35
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel None
36
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 16
37
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 32
38
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 16
39
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 24
40
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 32
41
+
42
+*% =========== Device Capabilities ===============
43
+
44
+*LanguageLevel: "2"
45
+*Protocols: TBCP
46
+*FreeVM: "2124600"
47
+*ColorDevice:  True
48
+*DefaultColorSpace: CMYK
49
+*FileSystem: True
50
+*Throughput: "1"
51
+
52
+*Password: "()" 
53
+
54
+*% ============Paper Size Information ==============
55
+
56
+*OpenUI *PageSize: PickOne
57
+*OrderDependency: 30 AnySetup *PageSize
58
+*DefaultPageSize: Letter
59
+*PageSize A4: "1 dict dup /PageSize [595 842] put setpagedevice"
60
+*PageSize A5: "1 dict dup /PageSize [421 595] put setpagedevice"
61
+*PageSize A6: "1 dict dup /PageSize [297 421] put setpagedevice"
62
+*PageSize A7: "1 dict dup /PageSize [210 297] put setpagedevice"
63
+*PageSize A8: "1 dict dup /PageSize [148 210] put setpagedevice"
64
+*PageSize A9: "1 dict dup /PageSize [105 148] put setpagedevice"
65
+*PageSize A10: "1 dict dup /PageSize [74 105] put setpagedevice"
66
+*PageSize B5: "1 dict dup /PageSize [501 709] put setpagedevice"
67
+*PageSize Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
68
+*CloseUI: *PageSize
69
+
70
+*OpenUI *PageRegion: PickOne
71
+*OrderDependency: 40 AnySetup *PageRegion
72
+*DefaultPageRegion: Letter
73
+*PageRegion A4: "1 dict dup /PageSize [595 842] put setpagedevice"
74
+*PageRegion A5: "1 dict dup /PageSize [421 595] put setpagedevice"
75
+*PageRegion A6: "1 dict dup /PageSize [297 421] put setpagedevice"
76
+*PageRegion A7: "1 dict dup /PageSize [210 297] put setpagedevice"
77
+*PageRegion A8: "1 dict dup /PageSize [148 210] put setpagedevice"
78
+*PageRegion A9: "1 dict dup /PageSize [105 148] put setpagedevice"
79
+*PageRegion A10: "1 dict dup /PageSize [74 105] put setpagedevice"
80
+*PageRegion B5: "1 dict dup /PageSize [501 709] put setpagedevice"
81
+*PageRegion Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
82
+*CloseUI: *PageRegion
83
+
84
+*DefaultImageableArea: Letter
85
+*ImageableArea A4: "18.425196 27.096094 576.625183 833.496094"
86
+*ImageableArea A5: "18.425196 27.096045 402.625183 586.496033"
87
+*ImageableArea A6: "18.425196 27.096045 278.625183 412.496033"
88
+*ImageableArea A7: "18.425196 27.096045 191.625198 288.496033"
89
+*ImageableArea A8: "18.425196 27.096045 129.625198 201.496048"
90
+*ImageableArea A9: "18.425196 27.096045 86.625198 139.496048"
91
+*ImageableArea A10: "18.425196 27.096045 55.625195 96.496048"
92
+*ImageableArea B5: "18.425196 27.096045 482.625183 700.496033"
93
+*ImageableArea Letter/US Letter: "18.425196 27.096045 593.625183 783.496033"
94
+
95
+*?ImageableArea: "
96
+save
97
+  /cvp {(                ) cvs print ( ) print } bind def
98
+  /upperright {10000 mul floor 10000 div} bind def
99
+  /lowerleft {10000 mul ceiling 10000 div} bind def
100
+  newpath clippath pathbbox
101
+  4 -2 roll exch 2 {lowerleft cvp} repeat
102
+  exch 2 {upperright cvp} repeat flush
103
+ restore
104
+"
105
+*End
106
+
107
+*PaperDimension A4: "595 842"
108
+*PaperDimension A5: "421 595"
109
+*PaperDimension A6: "297 421"
110
+*PaperDimension A7: "210 297"
111
+*PaperDimension A8: "148 210"
112
+*PaperDimension A9: "105 148"
113
+*PaperDimension A10: "74 105"
114
+*PaperDimension B5: "501 709"
115
+*PaperDimension Letter/US Letter: "612 792"
116
+
117
+*HWMargins: "9.637794495 27.042521 9.637794495 8.503937"
118
+
119
+*% =============Halftone Information ===============
120
+
121
+*ScreenFreq: "60.0"
122
+*ScreenAngle: "45.0"
123
+
124
+*DefaultScreenProc: Dot
125
+*ScreenProc Dot: "
126
+{dup mul exch dup mul add 1.0 exch sub }
127
+"
128
+*End
129
+*ScreenProc Line: "{ pop }"
130
+*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
131
+
132
+*DefaultTransfer: Normalized
133
+*Transfer Normalized: "{mark
134
+1.0 1.000 0.955 0.915 0.847 0.765 0.683 0.602 0.500 0.311 0.030 0.0
135
+counttomark dup 3 add -1 roll exch
136
+2 sub mul dup floor cvi dup 3 1 roll sub exch dup 
137
+3 add index exch 2 add index dup 4 1 roll sub mul add
138
+counttomark 1 add 1 roll cleartomark
139
+} bind"
140
+*End
141
+*Transfer Null: "{ }"
142
+*Transfer Null.Inverse: "{ 1 exch sub }"
143
+*End
144
+
145
+*%==================Input Slot====================
146
+
147
+*OpenUI *InputSlot/Media Source: PickOne
148
+*OrderDependency: 20 AnySetup *InputSlot
149
+*DefaultInputSlot: Feeder
150
+*InputSlot Feeder/Paper Tray: ""
151
+*CloseUI: *InputSlot
152
+
153
+*%=================Manual Feed====================
154
+
155
+*OpenUI *ManualFeed/Manual Feed:  Boolean
156
+*OrderDependency: 20 AnySetup *ManualFeed
157
+*DefaultManualFeed: False
158
+*ManualFeed True/True: "1 dict dup /ManualFeed true put setpagedevice"
159
+*ManualFeed False/False: "1 dict dup /ManualFeed false put setpagedevice"
160
+*?ManualFeed: "
161
+ save
162
+ currentpagedevice /ManualFeed get
163
+ {(True)}{(False)}ifelse = flush
164
+ restore"
165
+*End
166
+
167
+*CloseUI: *ManualFeed
168
+
169
+*%===================Resolution====================
170
+
171
+*OpenUI *Resolution/Resolution: PickOne
172
+*OrderDependency: 10 AnySetup *Resolution
173
+*DefaultResolution: 360x360dpi
174
+*Resolution 90x90dpi/90dpi: "
175
+ 1 dict dup /HWResolution [ 90 90 ]
176
+ put setpagedevice"
177
+*End
178
+
179
+*Resolution 180x180dpi/180dpi: "
180
+ 1 dict dup /HWResolution [ 180 180 ]
181
+ put setpagedevice"
182
+*End
183
+
184
+*Resolution 360x360dpi/360dpi: "
185
+ 1 dict dup /HWResolution [ 360 360 ]
186
+ put setpagedevice"
187
+*End
188
+
189
+*?Resolution: "
190
+ save
191
+ currentpagedevice /HWResolution get dup
192
+ 0 get cvi 10 string cvs print
193
+ (x) print
194
+ 0 get cvi 10 string print
195
+ (dpi) = flush
196
+ restore"
197
+*End
198
+
199
+*CloseUI: *Resolution
200
+
201
+*%===================Output Depth====================
202
+
203
+*OpenUI *BitsPerPixel/Print Depth: PickOne
204
+*OrderDependency: 30 AnySetup *BitsPerPixel
205
+*DefaultBitsPerPixel: 24
206
+*BitsPerPixel None/1bpp: "
207
+ 1 dict dup /BitsPerPixel 1 put
208
+ setpagedevice"
209
+*End
210
+
211
+*BitsPerPixel 8/8bpp: "
212
+ 1 dict dup /BitsPerPixel 8 put
213
+ setpagedevice"
214
+*End
215
+
216
+*BitsPerPixel 16/16bpp: "
217
+ 1 dict dup /BitsPerPixel 16 put
218
+ setpagedevice"
219
+*End
220
+
221
+*BitsPerPixel 24/24bpp: "
222
+ 1 dict dup /BitsPerPixel 24 put
223
+ setpagedevice"
224
+*End
225
+
226
+*BitsPerPixel 32/32bpp: "
227
+ 1 dict dup /BitsPerPixel 32 put
228
+ setpagedevice"
229
+*End
230
+
231
+*?BitsPerPixel: "
232
+ save
233
+ currentpagedevice /BitsPerPixel get dup 1 eq { pop (None) } if = flush
234
+ restore"
235
+*End
236
+
237
+*CloseUI: *BitsPerPixel
238
+
239
+*%=================Media Type============================
240
+
241
+*OpenUI *MediaType/Media Type: PickOne
242
+*OrderDependency: 50 AnySetup *MediaType
243
+*DefaultMediaType: PlainPaper
244
+*MediaType PlainPaper/Plain Paper: "
245
+ 1 dict dup /MediaType (PlainPaper) put setpagedevice"
246
+*End
247
+
248
+*MediaType CoatedPaper/Coated Paper: "
249
+ 1 dict dup /MediaType (CoatedPaper) put setpagedevice"
250
+*End
251
+
252
+*MediaType TransparencyFilm/Transparency Film: "
253
+ 1 dict dup /MediaType (TransparencyFilm) put setpagedevice"
254
+*End
255
+
256
+*MediaType Envelope/Envelope: "
257
+ 1 dict dup /MediaType (Envelope) put setpagedevice"
258
+*End
259
+
260
+*MediaType Card/Card: "
261
+ 1 dict dup /MediaType (Card) put setpagedevice"
262
+*End
263
+
264
+*MediaType Other/Other: "
265
+ 1 dict dup /MediaType (Other) put setpagedevice"
266
+*End
267
+
268
+*?MediaType: "
269
+ save
270
+ currentpagedevice /MediaType get
271
+ dup null eq {pop (Unknown)} if = flush 
272
+ restore " 
273
+*End
274
+
275
+*CloseUI: *MediaType
276
+
277
+*%===================Printing Quality====================
278
+
279
+*OpenUI *OutputMode/Print Quality: PickOne
280
+*OrderDependency: 50 AnySetup *OuputMode
281
+*DefaultOutputMode: Normal
282
+*OutputMode Draft/Draft: "
283
+ 1 dict dup /PrintQuality (Draft) put setpagedevice"
284
+*End
285
+
286
+*OutputMode Normal/Normal: "
287
+ 1 dict dup /PrintQuality (Normal) put setpagedevice"
288
+*End
289
+
290
+*OutputMode High/High: "
291
+ 1 dict dup /PrintQuality (High) put setpagedevice"
292
+*End
293
+
294
+*?OutputMode: "
295
+ save
296
+ currentpagedevice /PrintQuality get
297
+ dup null eq {pop (Unknown)} if = flush 
298
+ restore " 
299
+*End
300
+
301
+*CloseUI: *OutputMode
302
+
303
+*%===================Color/Gray Printing====================
304
+
305
+*OpenUI *ColorModel/Color Processing: PickOne
306
+*OrderDependency: 20 AnySetup *ColorModel
307
+*DefaultColorModel: DeviceCMYK
308
+*ColorModel DeviceGray/Gray: "
309
+ 1 dict dup /ProcessColorModel /DeviceGray 
310
+ put setpagedevice"
311
+*End
312
+
313
+*ColorModel DeviceRGB/RGB: "
314
+ 1 dict dup /ProcessColorModel /DeviceRGB
315
+ put setpagedevice"
316
+*End
317
+
318
+*ColorModel DeviceCMYK/CMYK: "
319
+ 1 dict dup /ProcessColorModel /DeviceCMYK 
320
+ put setpagedevice"
321
+*End
322
+
323
+*?ColorModel: "
324
+ save
325
+ currentpagedevice /ProcessColorModel get = flush 
326
+ restore "
327
+*End
328
+
329
+*CloseUI: *ColorModel
330
+
331
+*%===================Media Weight/Thick Media====================
332
+
333
+*OpenUI *ThickMedia/Thick Media: PickOne
334
+*OrderDependency: 30 AnySetup *ThickMedia
335
+*Default ThickMedia: Thin
336
+*ThickMedia Thin/No: "
337
+ 1 dict dup /MediaWeight 80 
338
+ put setpagedevice"
339
+*End
340
+
341
+*ThickMedia Thick/Yes: "
342
+ 1 dict dup /ThickMedia 120
343
+ put setpagedevice"
344
+*End
345
+
346
+*?ThickMedia: "
347
+ save
348
+ currentpagedevice /MediaWeight get 105 gt { (Thick) } { (Thin) } ifelse
349
+ = flush 
350
+ restore "
351
+*End
352
+
353
+*CloseUI: *ThickMedia
354
+
355
+*%===================PrintColors====================
356
+
357
+*OpenUI *PrintColors/Print Colors: PickOne
358
+*OrderDependency: 20 AnySetup *PrintColors
359
+*DefaultPrintColors: "15"
360
+*PrintColors 0/None: "1 dict dup /PrintColors 0 put setpagedevice"
361
+*End
362
+
363
+*PrintColors 1/Cyan: "1 dict dup /PrintColors 1 put setpagedevice"
364
+*End
365
+
366
+*PrintColors 2/Magenta: "1 dict dup /PrintColors 2 put setpagedevice"
367
+*End
368
+
369
+*PrintColors 4/Yellow: "1 dict dup /PrintColors 4 put setpagedevice"
370
+*End
371
+
372
+*PrintColors 8/Black: "1 dict dup /PrintColors 8 put setpagedevice"
373
+*End
374
+
375
+*PrintColors 15/All: "1 dict dup /PrintColors 15 put setpagedevice"
376
+*End
377
+
378
+
379
+*CloseUI *PrintColors
380
+
381
+*%===================Monochrome Printing====================
382
+
383
+*OpenUI *MonochromePrint/Monochrome Print: Boolean
384
+*OrderDependency: 50 AnySetup *MonochromePrint
385
+*DefaultMonochromePrint: False
386
+*MonochromePrint True/Yes: "
387
+ 1 dict dup /MonochromePrint true 
388
+ put setpagedevice"
389
+*End
390
+
391
+*MonochromePrint False/No: "
392
+ 1 dict dup /MonochromePrint false 
393
+ put setpagedevice"
394
+*End
395
+
396
+*?MonochromePrint: "
397
+ save
398
+ currentpagedevice /MonochromePrint get
399
+ {(True)}{(False)}ifelse = flush
400
+ restore"
401
+*End
402
+
403
+*CloseUI: *MonochromePrint
404
+

+ 389
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cbjc800.ppd View File

@@ -0,0 +1,389 @@
1
+*PPD-Adobe: "4.1"
2
+*% Adobe Systems PostScript(R) Printer Description File
3
+*% Copyright 1995 Yves Arrouye for AFPL Ghostscript with Level 2 PS.
4
+*% All Rights Reserved. 
5
+*% This file may be distributed as part of GNU Ghostscript and/or AFPL
6
+*% Ghostscript, under the same terms and conditions as Ghostscript.
7
+*% End of Copyright statement
8
+*FormatVersion: "4.1"
9
+*FileVersion: "1.0"
10
+*LanguageVersion: English
11
+*PCFileName: "CBJC800.PPD"
12
+*Product: "(Canon Bubble Jet Color 800)"
13
+*PSVersion: "(2010.351) 0"
14
+*ModelName: "Canon Bubble Jet Color 800"
15
+*NickName: "BJC-800"
16
+
17
+*% This file is not complete, and may lack some useful information...
18
+
19
+*% Note: the default transfer function should be set to Null if Ghostscript
20
+*% exhibit a bug making magenta appear while printing in gray levels...
21
+*% Note: if you print on A4 paper by default, change *Default values (the
22
+*% default is Letter here).
23
+
24
+*% ==============Constraints =================
25
+
26
+*UIConstraints: *BitsPerPixel None *ColorModel DeviceCMYK
27
+*UIConstraints: *BitsPerPixel None *ColorModel DeviceRGB
28
+*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceRGB
29
+*UIConstraints: *BitsPerPixel 16 *ColorModel DeviceGray
30
+*UIConstraints: *BitsPerPixel 24 *ColorModel DeviceGray
31
+*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceRGB
32
+*UIConstraints: *BitsPerPixel 32 *ColorModel DeviceGray
33
+
34
+*UIConstraints: *ColorModel DeviceCMYK *BitsPerPixel None
35
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel None
36
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 16
37
+*UIConstraints: *ColorModel DeviceRGB *BitsPerPixel 32
38
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 16
39
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 24
40
+*UIConstraints: *ColorModel DeviceGray *BitsPerPixel 32
41
+
42
+*% =========== Device Capabilities ===============
43
+
44
+*LanguageLevel: "2"
45
+*Protocols: TBCP
46
+*FreeVM: "2124600"
47
+*ColorDevice:  True
48
+*DefaultColorSpace: CMYK
49
+*FileSystem: True
50
+*Throughput: "1"
51
+
52
+*Password: "()" 
53
+
54
+*% ============Paper Size Information ==============
55
+
56
+*OpenUI *PageSize: PickOne
57
+*OrderDependency: 30 AnySetup *PageSize
58
+*DefaultPageSize: Letter
59
+*PageSize A4: "1 dict dup /PageSize [595 842] put setpagedevice"
60
+*PageSize A5: "1 dict dup /PageSize [421 595] put setpagedevice"
61
+*PageSize A6: "1 dict dup /PageSize [297 421] put setpagedevice"
62
+*PageSize A7: "1 dict dup /PageSize [210 297] put setpagedevice"
63
+*PageSize A8: "1 dict dup /PageSize [148 210] put setpagedevice"
64
+*PageSize A9: "1 dict dup /PageSize [105 148] put setpagedevice"
65
+*PageSize A10: "1 dict dup /PageSize [74 105] put setpagedevice"
66
+*PageSize B5: "1 dict dup /PageSize [501 709] put setpagedevice"
67
+*PageSize Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
68
+*PageSize 11x17/US 11x17: "1 dict dup /PageSize [792 1224] put setpagedevice"
69
+*PageSize Ledger/US Ledger: "1 dict dup /PageSize [1224 792] put setpagedevice"
70
+*PageSize Legal/US Legal: "1 dict dup /PageSize [612 1008] put setpagedevice"
71
+*CloseUI: *PageSize
72
+
73
+*OpenUI *PageRegion: PickOne
74
+*OrderDependency: 40 AnySetup *PageRegion
75
+*DefaultPageRegion: Letter
76
+*PageRegion A4: "1 dict dup /PageSize [595 842] put setpagedevice"
77
+*PageRegion A5: "1 dict dup /PageSize [421 595] put setpagedevice"
78
+*PageRegion A6: "1 dict dup /PageSize [297 421] put setpagedevice"
79
+*PageRegion A7: "1 dict dup /PageSize [210 297] put setpagedevice"
80
+*PageRegion A8: "1 dict dup /PageSize [148 210] put setpagedevice"
81
+*PageRegion A9: "1 dict dup /PageSize [105 148] put setpagedevice"
82
+*PageRegion A10: "1 dict dup /PageSize [74 105] put setpagedevice"
83
+*PageRegion B5: "1 dict dup /PageSize [501 709] put setpagedevice"
84
+*PageRegion Letter/US Letter: "1 dict dup /PageSize [612 792] put setpagedevice"
85
+*PageRegion 11x17/US 11x17: "1 dict dup /PageSize [792 1224] put setpagedevice"
86
+*PageRegion Ledger/US Ledger: "1 dict dup /PageSize [1224 792] put setpagedevice"
87
+*PageRegion Legal/US Legal: "1 dict dup /PageSize [612 1008] put setpagedevice"
88
+*CloseUI: *PageRegion
89
+
90
+*DefaultImageableArea: Letter
91
+*ImageableArea A3: "9.637793 27.096094 832.437805 1181.496094"
92
+*ImageableArea A4: "18.425196 27.096094 576.625183 833.496094"
93
+*ImageableArea A5: "18.425196 27.096045 402.625183 586.496033"
94
+*ImageableArea A6: "18.425196 27.096045 278.625183 412.496033"
95
+*ImageableArea A7: "18.425196 27.096045 191.625198 288.496033"
96
+*ImageableArea A8: "18.425196 27.096045 129.625198 201.496048"
97
+*ImageableArea A9: "18.425196 27.096045 86.625198 139.496048"
98
+*ImageableArea A10: "18.425196 27.096045 55.625195 96.496048"
99
+*ImageableArea B5: "18.425196 27.096045 482.625183 700.496033"
100
+*ImageableArea Letter/US Letter: "18.425196 27.096045 593.625183 783.496033"
101
+*ImageableArea 11x17/US 11x17: "9.637793 27.096094 782.437805 1215.496094"
102
+*ImageableArea Ledger/US Ledger: "9.637793 27.096045 1214.437744 783.496033"
103
+*ImageableArea Legal/US Legal: "9.637793 27.096094 602.437805 999.496094"
104
+
105
+*?ImageableArea: "
106
+save
107
+  /cvp {(                ) cvs print ( ) print } bind def
108
+  /upperright {10000 mul floor 10000 div} bind def
109
+  /lowerleft {10000 mul ceiling 10000 div} bind def
110
+  newpath clippath pathbbox
111
+  4 -2 roll exch 2 {lowerleft cvp} repeat
112
+  exch 2 {upperright cvp} repeat flush
113
+ restore
114
+"
115
+*End
116
+
117
+*PaperDimension A4: "595 842"
118
+*PaperDimension A5: "421 595"
119
+*PaperDimension A6: "297 421"
120
+*PaperDimension A7: "210 297"
121
+*PaperDimension A8: "148 210"
122
+*PaperDimension A9: "105 148"
123
+*PaperDimension A10: "74 105"
124
+*PaperDimension B5: "501 709"
125
+*PaperDimension Letter/US Letter: "612 792"
126
+*PaperDimension 11x17/US 11x17: "792 1224"
127
+*PaperDimension Ledger/US Ledger: "1224 792"
128
+*PaperDimension Legal/US Legal: "612 1008"
129
+
130
+*HWMargins: "9.637794495 19.842518 9.637794495 8.503937"
131
+
132
+*% =============Halftone Information ===============
133
+
134
+*ScreenFreq: "60.0"
135
+*ScreenAngle: "45.0"
136
+
137
+*DefaultScreenProc: Dot
138
+*ScreenProc Dot: "
139
+{dup mul exch dup mul add 1.0 exch sub }
140
+"
141
+*End
142
+*ScreenProc Line: "{ pop }"
143
+*ScreenProc Ellipse: "{ dup 5 mul 8 div mul exch dup mul exch add sqrt 1 exch sub }"
144
+
145
+*DefaultTransfer: Normalized
146
+*Transfer Normalized: "{mark
147
+1.0 1.000 0.955 0.915 0.847 0.765 0.683 0.602 0.500 0.311 0.030 0.0
148
+counttomark dup 3 add -1 roll exch
149
+2 sub mul dup floor cvi dup 3 1 roll sub exch dup 
150
+3 add index exch 2 add index dup 4 1 roll sub mul add
151
+counttomark 1 add 1 roll cleartomark
152
+} bind"
153
+*End
154
+*Transfer Null: "{ }"
155
+*Transfer Null.Inverse: "{ 1 exch sub }"
156
+*End
157
+
158
+*%==================Input Slot====================
159
+
160
+*OpenUI *InputSlot/Media Source: PickOne
161
+*OrderDependency: 20 AnySetup *InputSlot
162
+*DefaultInputSlot: Feeder
163
+*InputSlot Feeder/Paper Tray: ""
164
+*CloseUI: *InputSlot
165
+
166
+*%=================Manual Feed====================
167
+
168
+*OpenUI *ManualFeed/Manual Feed:  Boolean
169
+*OrderDependency: 20 AnySetup *ManualFeed
170
+*DefaultManualFeed: False
171
+*ManualFeed True/True: "1 dict dup /ManualFeed true put setpagedevice"
172
+*ManualFeed False/False: "1 dict dup /ManualFeed false put setpagedevice"
173
+*?ManualFeed: "
174
+ save
175
+ currentpagedevice /ManualFeed get
176
+ {(True)}{(False)}ifelse = flush
177
+ restore"
178
+*End
179
+
180
+*CloseUI: *ManualFeed
181
+
182
+*%===================Resolution====================
183
+
184
+*OpenUI *Resolution/Resolution: PickOne
185
+*OrderDependency: 10 AnySetup *Resolution
186
+*DefaultResolution: 360x360dpi
187
+*Resolution 90x90dpi/90dpi: "
188
+ 1 dict dup /HWResolution [ 90 90 ]
189
+ put setpagedevice"
190
+*End
191
+
192
+*Resolution 180x180dpi/180dpi: "
193
+ 1 dict dup /HWResolution [ 180 180 ]
194
+ put setpagedevice"
195
+*End
196
+
197
+*Resolution 360x360dpi/360dpi: "
198
+ 1 dict dup /HWResolution [ 360 360 ]
199
+ put setpagedevice"
200
+*End
201
+
202
+*?Resolution: "
203
+ save
204
+ currentpagedevice /HWResolution get dup
205
+ 0 get cvi 10 string cvs print
206
+ (x) print
207
+ 0 get cvi 10 string print
208
+ (dpi) = flush
209
+ restore"
210
+*End
211
+
212
+*CloseUI: *Resolution
213
+
214
+*%===================Output Depth====================
215
+
216
+*OpenUI *BitsPerPixel/Print Depth: PickOne
217
+*OrderDependency: 30 AnySetup *BitsPerPixel
218
+*DefaultBitsPerPixel: 24
219
+*BitsPerPixel None/1bpp: "
220
+ 1 dict dup /BitsPerPixel 1 put
221
+ setpagedevice"
222
+*End
223
+
224
+*BitsPerPixel 8/8bpp: "
225
+ 1 dict dup /BitsPerPixel 8 put
226
+ setpagedevice"
227
+*End
228
+
229
+*BitsPerPixel 16/16bpp: "
230
+ 1 dict dup /BitsPerPixel 16 put
231
+ setpagedevice"
232
+*End
233
+
234
+*BitsPerPixel 24/24bpp: "
235
+ 1 dict dup /BitsPerPixel 24 put
236
+ setpagedevice"
237
+*End
238
+
239
+*BitsPerPixel 32/32bpp: "
240
+ 1 dict dup /BitsPerPixel 32 put
241
+ setpagedevice"
242
+*End
243
+
244
+*?BitsPerPixel: "
245
+ save
246
+ currentpagedevice /BitsPerPixel get dup 1 eq { pop (None) } if = flush
247
+ restore"
248
+*End
249
+
250
+*CloseUI: *BitsPerPixel
251
+
252
+*%=================Media Type============================
253
+
254
+*OpenUI *MediaType/Media Type: PickOne
255
+*OrderDependency: 50 AnySetup *MediaType
256
+*DefaultMediaType: PlainPaper
257
+*MediaType PlainPaper/Plain Paper: "
258
+ 1 dict dup /MediaType (PlainPaper) put setpagedevice"
259
+*End
260
+
261
+*MediaType CoatedPaper/Coated Paper: "
262
+ 1 dict dup /MediaType (CoatedPaper) put setpagedevice"
263
+*End
264
+
265
+*MediaType TransparencyFilm/Transparency Film: "
266
+ 1 dict dup /MediaType (TransparencyFilm) put setpagedevice"
267
+*End
268
+
269
+*MediaType Envelope/Envelope: "
270
+ 1 dict dup /MediaType (Envelope) put setpagedevice"
271
+*End
272
+
273
+*MediaType Card/Card: "
274
+ 1 dict dup /MediaType (Card) put setpagedevice"
275
+*End
276
+
277
+*MediaType Other/Other: "
278
+ 1 dict dup /MediaType (Other) put setpagedevice"
279
+*End
280
+
281
+*?MediaType: "
282
+ save
283
+ currentpagedevice /MediaType get
284
+ dup null eq {pop (Unknown)} if = flush 
285
+ restore " 
286
+*End
287
+
288
+*CloseUI: *MediaType
289
+
290
+*%===================Printing Quality====================
291
+
292
+*OpenUI *OutputMode/Print Quality: PickOne
293
+*OrderDependency: 10 AnySetup *OuputMode
294
+*DefaultOutputMode: Normal
295
+*OutputMode Draft/Draft: "
296
+ 1 dict dup /PrintQuality (Draft) put setpagedevice"
297
+*End
298
+
299
+*OutputMode Low/Low: "
300
+ 1 dict dup /PrintQuality (Low) put setpagedevice"
301
+*End
302
+
303
+*OutputMode Normal/Normal: "
304
+ 1 dict dup /PrintQuality (Normal) put setpagedevice"
305
+*End
306
+
307
+*OutputMode High/High: "
308
+ 1 dict dup /PrintQuality (High) put setpagedevice"
309
+*End
310
+
311
+*CloseUI: *OutputMode
312
+
313
+*%===================Color/Gray Printing====================
314
+
315
+*OpenUI *ColorModel/Color Processing: PickOne
316
+*OrderDependency: 20 AnySetup *ColorModel
317
+*DefaultColorModel: DeviceCMYK
318
+*ColorModel DeviceGray/Gray: "
319
+ 1 dict dup /ProcessColorModel /DeviceGray 
320
+ put setpagedevice"
321
+*End
322
+
323
+*ColorModel DeviceRGB/RGB: "
324
+ 1 dict dup /ProcessColorModel /DeviceRGB
325
+ put setpagedevice"
326
+*End
327
+
328
+*ColorModel DeviceCMYK/CMYK: "
329
+ 1 dict dup /ProcessColorModel /DeviceCMYK 
330
+ put setpagedevice"
331
+*End
332
+
333
+*?ColorModel: "
334
+ save
335
+ currentpagedevice /ProcessColorModel get = flush 
336
+ restore "
337
+*End
338
+
339
+*CloseUI: *ColorModel
340
+
341
+*%===================Media Weight/Thick Media====================
342
+
343
+*OpenUI *ThickMedia/Thick Media: PickOne
344
+*OrderDependency: 30 AnySetup *ThickMedia
345
+*Default ThickMedia: Thin
346
+*ThickMedia Thin/No: "
347
+ 1 dict dup /MediaWeight 80 
348
+ put setpagedevice"
349
+*End
350
+
351
+*ThickMedia Thick/Yes: "
352
+ 1 dict dup /ThickMedia 120
353
+ put setpagedevice"
354
+*End
355
+
356
+*?ThickMedia: "
357
+ save
358
+ currentpagedevice /MediaWeight get 105 gt { (Thick) } { (Thin) } ifelse
359
+ = flush 
360
+ restore "
361
+*End
362
+
363
+*CloseUI: *ThickMedia
364
+
365
+*%===================PrintColors====================
366
+
367
+*OpenUI *PrintColors/Print Colors: PickOne
368
+*OrderDependency: 20 AnySetup *PrintColors
369
+*DefaultPrintColors: "15"
370
+*PrintColors 0/None: "1 dict dup /PrintColors 0 put setpagedevice"
371
+*End
372
+
373
+*PrintColors 1/Cyan: "1 dict dup /PrintColors 1 put setpagedevice"
374
+*End
375
+
376
+*PrintColors 2/Magenta: "1 dict dup /PrintColors 2 put setpagedevice"
377
+*End
378
+
379
+*PrintColors 4/Yellow: "1 dict dup /PrintColors 4 put setpagedevice"
380
+*End
381
+
382
+*PrintColors 8/Black: "1 dict dup /PrintColors 8 put setpagedevice"
383
+*End
384
+
385
+*PrintColors 15/All: "1 dict dup /PrintColors 15 put setpagedevice"
386
+*End
387
+
388
+
389
+*CloseUI *PrintColors

+ 48
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj550.upp View File

@@ -0,0 +1,48 @@
1
+-supModel="HP Deskjet 550c, 300x300DpI, Gamma=2"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Pcl
8
+-r300x300
9
+-dupMargins="{ 12.0 36.0 12.0 12.0}"
10
+-dupBlackTransfer="{
11
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
12
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
13
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
14
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
15
+}"
16
+-dupCyanTransfer="{
17
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
18
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
19
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
20
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
21
+}"
22
+-dupMagentaTransfer="{
23
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
24
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
25
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
26
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
27
+}"
28
+-dupYellowTransfer="{
29
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
30
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
31
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
32
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
33
+}"
34
+-dupBeginPageCommand="<
35
+   1b2a726243
36
+   1b2a7433303052
37
+   1b266c33616f6c45
38
+   1b2a6f31643251
39
+   1b2a703059
40
+   1b2a72732d34753041
41
+   1b2a62326d
42
+>"
43
+-dupAdjustPageWidthCommand
44
+-dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
45
+-dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12    Printout-Aborted\15\033&l0H)"
46
+-dupYMoveCommand="(%dy\0)"
47
+-dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"
48
+

+ 52
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj690.upp View File

@@ -0,0 +1,52 @@
1
+-supModel="HP Deskjet 690 Normal Gamma 2.0"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceCMYK
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Pcl
8
+-r600x300
9
+-dupMargins="{ 12.0 36.0 12.0 12.0}"
10
+-dupBlackTransfer="{
11
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
12
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
13
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
14
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
15
+}"
16
+-dupCyanTransfer="{
17
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
18
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
19
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
20
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
21
+}"
22
+-dupMagentaTransfer="{
23
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
24
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
25
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
26
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
27
+}"
28
+-dupYellowTransfer="{
29
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
30
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
31
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
32
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
33
+}"
34
+-dupBeginPageCommand="<
35
+1b25 2d31 3233 3435 5840 
36
+504a 4c20 454e 5445 5220 4c41 4e47 5541 
37
+4745 3d50 434c 534c 4545 4b0a 1b45 1b2a 
38
+6232 421b 2a6f 3557 040c 0000 001b 2a6f 
39
+3144 1b26 6c31 481b 266c 3236 6130 4c1b 
40
+2a6f 3557 0103 0000 011b 266c 304d 1b26 
41
+6c30 6f30 451b 2a6f 304d 1b26 7533 3030 
42
+441b 2a70 3058 1b2a 7030 591b 2a67 3857 
43
+0201 0258 012c 0002 1b2a 7234 3830 3053 
44
+1b2a 7231 411b 2a62 324d 1b2a 6233 3034 
45
+591b 2a62 326d 
46
+>"
47
+-dupAdjustPageWidthCommand
48
+-dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
49
+-dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12    Printout-Aborted\15\033&l0H)"
50
+-dupYMoveCommand="(%dy\0)"
51
+-dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"
52
+-dupOutputYOffset=10000

+ 54
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cdj690ec.upp View File

@@ -0,0 +1,54 @@
1
+-supModel="HP Deskjet 690 Econo-Fast Gamma 2.0"
2
+-sDEVICE=uniprint
3
+-sPAPERSIZE=a4
4
+-dNOPAUSE
5
+-dSAFER
6
+-dupColorModel=/DeviceCMYK
7
+-dupRendering=/ErrorDiffusion
8
+-dupOutputFormat=/Pcl
9
+-r300x300
10
+
11
+-dupOutputYOffset=300
12
+-dupMargins="{ 0.0 36.0 12.0 12.0}"
13
+-dupBlackTransfer="{
14
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
15
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
16
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
17
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
18
+}"
19
+-dupCyanTransfer="{
20
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
21
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
22
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
23
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
24
+}"
25
+-dupMagentaTransfer="{
26
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
27
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
28
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
29
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
30
+}"
31
+-dupYellowTransfer="{
32
+     0.0000 0.0010 0.0042 0.0094 0.0166 0.0260 0.0375 0.0510 
33
+     0.0666 0.0843 0.1041 0.1259 0.1498 0.1758 0.2039 0.2341
34
+     0.2663 0.3007 0.3371 0.3756 0.4162 0.4589 0.5036 0.5505
35
+     0.5994 0.6504 0.7034 0.7586 0.8158 0.8751 0.9365 1.0000
36
+}"
37
+-dupBeginPageCommand="<
38
+1b25 2d31 3233 3435 5840 
39
+504a 4c20 454e 5445 5220 4c41 4e47 5541 
40
+4745 3d50 434c 534c 4545 4b0a 1b45 1b2a 
41
+6232 421b 2a6f 3557 040c 0000 001b 2a6f 
42
+3144 1b26 6c31 481b 266c 3236 6130 4c1b 
43
+2a6f 3557 0103 0000 011b 266c 304d 1b26 
44
+6c30 6f30 451b 2a6f 2d31 4d1b 2675 3330 
45
+3044 1b2a 7030 581b 2a70 3059 1b2a 6732 
46
+3657 0204 012c 012c 0002 012c 012c 0002 
47
+012c 012c 0002 012c 012c 0002 1b2a 7232 
48
+3430 3053 1b2a 7231 411b 2a62 324d 1b2a 
49
+6231 591b 2a62 326d>"
50
+-dupAdjustPageWidthCommand
51
+-dupEndPageCommand="(0M\033*rbC\033E\033&l0H)"
52
+-dupAbortCommand="(0M\033*rbC\033E\15\12\12\12\12    Printout-Aborted\15\033&l0H)"
53
+-dupYMoveCommand="(%dy\0)"
54
+-dupWriteComponentCommands="{ (%dv\0) (%dv\0) (%dv\0) (%dw\0) }"

+ 160
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cid2code.ps View File

@@ -0,0 +1,160 @@
1
+%    Copyright (C) 1998, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: cid2code.ps 6300 2005-12-28 19:56:24Z giles $
17
+% Construct an inverse map from CIDs to codes.
18
+
19
+% Create an inverse map from CIDs to code values.
20
+% We only use this for 16-bit Unicode, so it has some limitations.
21
+% After invoking .cmap2code, loading a CMap file prints out the map
22
+% instead of doing what it usually does.  For example:
23
+%
24
+%	gs -dNODISPLAY -dBATCH lib/cid2code.ps -c .cmap2code\
25
+%	  -f Resource/CMap/UniJIS-UCS2-H > mapfile
26
+
27
+/.cmap2codedict 10 dict begin
28
+
29
+/begincmap {
30
+  mark
31
+} def
32
+/endcmap {
33
+		% Stack: mark code_lo1 code_hi1 cid1 ...
34
+  20 dict begin
35
+    /depth counttomark 3 sub def
36
+		% Do a first pass to determine the maximum CID.
37
+    0 0 3 depth {
38
+      1 add /d exch def
39
+      d index d 2 add index 1 get add d 3 add index 1 get sub .max
40
+    } for
41
+    1 add /ncid exch def
42
+    /map ncid 2 mul string def
43
+		% Now fill in the map.
44
+    0 3 depth {
45
+      /d exch def
46
+      d index 2 mul /cid2 exch def
47
+      d 1 add index /hi exch def
48
+      d 2 add index 2 string copy /lo exch def
49
+      lo 1 get 1 hi 1 get {
50
+	map cid2 lo 0 get put
51
+	map cid2 1 add 3 -1 roll put
52
+	/cid2 cid2 2 add def
53
+      } for
54
+    } for
55
+		% Print the map.
56
+    (%stdout) (w) file
57
+      dup (<) print
58
+      dup /ASCIIHexEncode filter
59
+	dup map writestring
60
+      closefile
61
+      () = flush
62
+    closefile
63
+  end
64
+} def
65
+%/begincodespacerange
66
+/endcodespacerange {cleartomark} def
67
+%/usecmap
68
+
69
+%/beginbfchar
70
+/endbfchar {cleartomark} def
71
+%/beginbfrange
72
+/endbfrange {cleartomark} def
73
+
74
+%/begincidchar
75
+/endcidchar {
76
+  counttomark 2 idiv { dup counttomark 1 add 3 roll } repeat pop
77
+} def
78
+%/begincidrange
79
+/endcidrange {
80
+  counttomark 1 add -1 roll pop
81
+} def
82
+
83
+%/beginnotdefchar
84
+/endnotdefchar {cleartomark} def
85
+%/beginnotdefrange
86
+/endnotdefrange {cleartomark} def
87
+
88
+currentdict end readonly def
89
+
90
+/.cmap2code {		% - .cmap2code -
91
+  /CIDInit /ProcSet findresource dup length dict copy
92
+  .cmap2codedict { 3 copy put pop pop } forall
93
+  /CIDInit exch /ProcSet defineresource pop
94
+} def
95
+
96
+% Extract and print reverse mapping information from a cid2code.txt file.
97
+/.printhex2 {		% <int16> .printhex2 -
98
+  (<) print
99
+  16#10000 add 16 =string cvrs 1 4 getinterval print
100
+  (>) print
101
+} def
102
+/.cid2code {		% <cmaptemplate> <file> <column> .cid2code -
103
+  30 dict begin
104
+  /column exch def
105
+  (r) file /f exch def
106
+  (%!) =
107
+  (/CIDInit /ProcSet findresource begin   12 dict begin   begincmap) =
108
+		% Print the information from the template.
109
+  {
110
+    exch ==only ( ) print
111
+    dup type /dicttype eq {
112
+      dup length =only ( dict dup begin) = {
113
+	(  ) print exch ===only ( ) print ===only ( def) =
114
+      } forall (end def) =
115
+    } {
116
+      ===only
117
+    } ifelse ( def) =
118
+  } forall
119
+		% Read the data from the cid2code.txt file.
120
+  {
121
+    f =string readline pop (CID\t) anchorsearch { pop pop exit } if pop
122
+  } loop
123
+  /map [ {
124
+    f =string readline not { pop exit } if
125
+    column { (\t) search pop pop pop } repeat
126
+    (\t) search { exch pop exch pop } if
127
+    (,) search { exch pop exch pop } if
128
+    dup length 4 ne { pop (*) } if
129
+    dup (*) eq { pop (0000) } if
130
+    (16#) exch concatstrings cvi
131
+  } loop ] def
132
+		% Print the code space range(s).
133
+  /maxcid map length 1 sub def
134
+  mark maxcid
135
+  dup 255 and 255 eq {
136
+    0 exch
137
+  } {
138
+    dup 16#ff00 and exch 0 2 index 1 sub
139
+  } ifelse
140
+  counttomark 2 idiv dup =only ( begincodespacerange) = {
141
+    exch .printhex2 .printhex2 () =
142
+  } repeat (endcodespacerange) =
143
+		% Print the map data.
144
+  0 1 100 maxcid {
145
+    /lo exch def
146
+    /hi lo 99 add maxcid .min def
147
+    0 lo 1 hi { map exch get 0 ne { 1 add } if } for
148
+    dup 0 eq {
149
+      pop
150
+    } {
151
+      =only ( begincidchar) = lo 1 hi {
152
+	map 1 index get dup 0 eq { pop pop } { exch .printhex2 = } ifelse
153
+      } for (endcidchar) =
154
+    } ifelse
155
+  } for
156
+		% Wrap up.
157
+  (endcmap   CMapName currentdict /CMap defineresource pop   end   end) =
158
+  f closefile
159
+  end
160
+} bind def

+ 43
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cidfmap View File

@@ -0,0 +1,43 @@
1
+%!
2
+% cidfmap generated automatically by mkcidfm.ps from fonts found in
3
+%   C:/Windows/fonts
4
+
5
+% Substitutions
6
+/MS-PGothic << /FileType /TrueType /SubfontID 1 /CSI [(Japan1) 3] /Path (C:/Windows/fonts/msgothic.ttc) >> ;
7
+/MS-Mincho << /FileType /TrueType /SubfontID 0 /CSI [(Japan1) 3] /Path (C:/Windows/fonts/msmincho.ttc) >> ;
8
+/DotumChe << /FileType /TrueType /SubfontID 3 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
9
+/SimSun << /FileType /TrueType /SubfontID 0 /CSI [(GB1) 2] /Path (C:/Windows/fonts/simsun.ttc) >> ;
10
+/Gulim << /FileType /TrueType /SubfontID 0 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
11
+/MingLiU << /FileType /TrueType /SubfontID 0 /CSI [(CNS1) 2] /Path (C:/Windows/fonts/mingliu.ttc) >> ;
12
+/BatangChe << /FileType /TrueType /SubfontID 1 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/batang.ttc) >> ;
13
+/Dotum << /FileType /TrueType /SubfontID 2 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
14
+/µ¸¿ò << /FileType /TrueType /SubfontID 2 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
15
+/PMingLiU << /FileType /TrueType /SubfontID 1 /CSI [(CNS1) 2] /Path (C:/Windows/fonts/mingliu.ttc) >> ;
16
+/SimHei << /FileType /TrueType /SubfontID 0 /CSI [(GB1) 2] /Path (C:/Windows/fonts/simhei.ttf) >> ;
17
+/Gungsuh << /FileType /TrueType /SubfontID 2 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/batang.ttc) >> ;
18
+/MS-PMincho << /FileType /TrueType /SubfontID 1 /CSI [(Japan1) 3] /Path (C:/Windows/fonts/msmincho.ttc) >> ;
19
+/MS-UI-Gothic << /FileType /TrueType /SubfontID 2 /CSI [(Japan1) 3] /Path (C:/Windows/fonts/msgothic.ttc) >> ;
20
+/MS-Gothic << /FileType /TrueType /SubfontID 0 /CSI [(Japan1) 3] /Path (C:/Windows/fonts/msgothic.ttc) >> ;
21
+/NSimSun << /FileType /TrueType /SubfontID 1 /CSI [(GB1) 2] /Path (C:/Windows/fonts/simsun.ttc) >> ;
22
+/Batang << /FileType /TrueType /SubfontID 0 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/batang.ttc) >> ;
23
+/GulimChe << /FileType /TrueType /SubfontID 1 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
24
+/±¼¸² << /FileType /TrueType /SubfontID 1 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/gulim.ttc) >> ;
25
+/GungsuhChe << /FileType /TrueType /SubfontID 3 /CSI [(Korea1) 3] /Path (C:/Windows/fonts/batang.ttc) >> ;
26
+
27
+% Aliases
28
+/STHeiti-Regular /SimHei ;
29
+/STSong-Light /SimSun ;
30
+/STKaiti-Regular /SimHei ;
31
+/HeiseiKakuGo-W5 /MS-Gothic ;
32
+/HeiseiMin-W3 /MS-Mincho ;
33
+/HYSMyeongJo-Medium /Batang ;
34
+/GothicBBB-Medium /MS-Gothic ;
35
+/MKai-Medium /MingLiU ;
36
+/Ryumin-Light /MS-Mincho ;
37
+/MHei-Medium /MingLiU ;
38
+/HYRGoThic-Medium /Gulim ;
39
+/MSung-Medium /MingLiU ;
40
+/Ryumin-Medium /MS-Mincho ;
41
+/HYGoThic-Medium /Dotum ;
42
+/STFangsong-Light /SimSun ;
43
+/MSung-Light /MingLiU ;

+ 28
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/cidfmap.bak View File

@@ -0,0 +1,28 @@
1
+%!
2
+% $Id: cidfmap 8954 2008-08-08 04:22:38Z ray $
3
+% This is a sample map file for CIDFont category.
4
+
5
+%
6
+% The map is a set of records, which must use one of the two formats :
7
+%
8
+% 1. A substutution of a CIF font with another CID font :
9
+%
10
+%    /substituted /original ;
11
+%
12
+%    Where 'substituted' is a name being used in a document,
13
+%    'original' is a name of an available resource.
14
+%
15
+% 2. A substutution of a CIF font with a True Type font :
16
+%
17
+%    /substituted << /FileType /TrueType /Path (path) /SunfontID 1 /CSI [(ordering) supplement] >> ;
18
+%
19
+%    Where 'substituted' is a name being used in a document,
20
+%    'path' is a path to a True Type font file,
21
+%    'ordering' is a value of Ordering required for CIDSystemInfo dictionary,
22
+%    'supplement' is a value of Supplement required for CIDSystemInfo dictionary.
23
+%
24
+% Examples :
25
+%    
26
+%   /ShinGo-Bold   /HeiseiKakuGo-W5 ;
27
+%   /Ryumin-Medium << /FileType /TrueType /Path (H:/AuxFiles/Fonts/BATANG.TTC) /SubfontID 3 /CSI [(Japan1) 2] >> ;
28
+%

+ 15
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/decrypt.ps View File

@@ -0,0 +1,15 @@
1
+%!
2
+% Decrypt an eexec-encoded file.
3
+% $Id: decrypt.ps 6300 2005-12-28 19:56:24Z giles $
4
+
5
+(t.in) (r) file /in exch def
6
+(t.out) (w) file /out exch def
7
+256 string /buf exch def
8
+55665		% eexec encryption seed
9
+ { in buf readhexstring /more exch def
10
+   dup .type1decrypt out exch writestring
11
+   more not { exit } if
12
+ } loop
13
+in closefile
14
+out closefile
15
+quit

+ 47
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dnj750c.upp View File

@@ -0,0 +1,47 @@
1
+-supModel="HP Designjet 750c, 300x300DpI, Gamma=2.5, CMY"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceRGB
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Pcl
8
+-r300x300
9
+-dupMargins="{0.0 0.0 0.0 0.0}"
10
+-dupRedTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228 
11
+0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408 
12
+0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538 
13
+0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822 
14
+0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168 
15
+0.00105723308 0.000186894162 0.0}"
16
+-dupGreenTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228 
17
+0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408 
18
+0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538 
19
+0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822 
20
+0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168 
21
+0.00105723308 0.000186894162 0.0}"
22
+-dupBlueTransfer="{1.0 0.921295345 0.846429467 0.775337517 0.707954228 
23
+0.644212425 0.584044278 0.527380228 0.474149585 0.424279869 0.377697408 
24
+0.334326446 0.294089675 0.256907612 0.222698912 0.191379622 0.162863538 
25
+0.137061611 0.113881744 0.0932285339 0.0750028 0.0591011234 0.0454152822 
26
+0.0338314585 0.0242292974 0.0164806321 0.0104477014 0.00598061318 0.00291339168 
27
+0.00105723308 0.000186894162 0.0}"
28
+-dupBeginPageCommand="<1b252d31323334355840504a4c204a4f42204e414d45203d20226773
29
+220d0a40504a4c20534554204d4952524f52203d204f4646200a40504a4c205345542050414c4554
30
+5445534f55524345203d20534f465457415245200a40504a4c205345542052454e4445524d4f4445
31
+203d20434f4c4f52200a40504a4c20534554205245534f4c5554494f4e203d2030200a40504a4c20
32
+534554205052494e5441524541203d2046554c4c53495a45200a40504a4c20534554205041504552
33
+4c454e475448203d2030200a40504a4c205345542050415045525749445448203d2030200a40504a
34
+4c20534554204f5249454e544154494f4e203d20504f525452414954200a40504a4c20534554204d
35
+415247494e53203d204e4f524d414c200a40504a4c20454e544552204c414e4755414745203d2048
36
+50474c32200d0a1b2531424250352c31494e5755304e50384543514c3130301b2531411b2661314e
37
+1b2a7631385700000308080800ff00ff00ff0000000000001b2a7632353561323535623235356330
38
+491b2a763061323535623235356331491b2a763235356130623235356332491b2a76306130623235
39
+356333491b2a763235356132353562306334491b2a76306132353562306335491b2a763235356130
40
+62306336491b2a7630613062306337491b2a74521b2a72531b2a72541b2a7231411b2a62324d>"
41
+-dupAdjustPageWidthCommand
42
+-dupAdjustPageLengthCommand
43
+-dupAdjustResolutionCommand
44
+-dupEndPageCommand="<1b2a72431b451b25314250473b1b252d313233343558>"
45
+-dupAbortCommand="
46
+(\033*rC\033E\15\12\12\12\12    Printout-Aborted\033%1BPG;\033%-12345X)"
47
+-dupWriteComponentCommands="{(\033*b%dV\0) (\033*b%dV\0) (\033*b%dW\0)}"

+ 59
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dnj750m.upp View File

@@ -0,0 +1,59 @@
1
+-supModel="HP Designjet 750m, 600x600DpI, Gamma=2.5, CMY"
2
+-sDEVICE=uniprint
3
+-dNOPAUSE
4
+-dSAFER
5
+-dupColorModel=/DeviceGray
6
+-dupRendering=/ErrorDiffusion
7
+-dupOutputFormat=/Pcl
8
+-r600x600
9
+-dupMargins="{0.0 0.0 0.0 0.0}"
10
+-dupWhiteTransfer="{
11
+1.0            0.921295345  0.846429467   0.775337517   0.707954228
12
+0.644212425    0.584044278  0.527380228   0.474149585   0.424279869
13
+0.377697408    0.334326446  0.294089675   0.256907612   0.222698912
14
+0.191379622    0.162863538  0.137061611   0.113881744   0.0932285339
15
+0.0750028      0.0591011234 0.0454152822  0.0338314585  0.0242292974
16
+0.0164806321   0.0104477014 0.00598061318 0.00291339168 0.00105723308
17
+0.000186894162 0.0
18
+}"
19
+-dupBeginPageCommand="<
20
+   1b252d313233343558
21
+   40504a4c204a4f42204e414d45203d20226773220d0a
22
+   40504a4c20534554204d4952524f52203d204f4646200a
23
+   40504a4c205345542050414c45545445534f55524345203d20534f465457415245200a
24
+   40504a4c205345542052454e4445524d4f4445203d20475241595343414c45200a
25
+   40504a4c20534554205245534f4c5554494f4e203d2030200a
26
+   40504a4c20534554205052494e5441524541203d2046554c4c53495a45200a
27
+   40504a4c205345542050415045524c454e475448203d2030200a
28
+   40504a4c205345542050415045525749445448203d2030200a
29
+   40504a4c20534554204f5249454e544154494f4e203d20504f525452414954200a
30
+   40504a4c20534554204d415247494e53203d204e4f524d414c200a
31
+   40504a4c20454e544552204c414e4755414745203d204850474c32200d0a
32
+   1b253142
33
+   4250352c31
34
+   494e
35
+   575530
36
+   4e5032
37
+   4543
38
+   514c313030
39
+   1b253141
40
+   1b2661314e
41
+   1b2a763657
42
+   00
43
+   00
44
+   01
45
+   080808
46
+   1b2a76 32353561 32353562 32353563 3049
47
+   1b2a76     3061     3062     3063 3149
48
+   1b2a74 33323152
49
+   1b2a72 33323153
50
+   1b2a72 54
51
+   1b2a72 3141
52
+   1b2a62 324d
53
+>"
54
+-dupAdjustPageWidthCommand
55
+-dupAdjustPageLengthCommand
56
+-dupAdjustResolutionCommand
57
+-dupEndPageCommand="(\033*rC\033E\033%1BPG;\033%-12345X)"
58
+-dupAbortCommand="(\033*rC\033E\15\12\12\12\12    Printout-Aborted\033%1BPG;\033%-12345X)"
59
+-dupWriteComponentCommands="{ (\033*b%dW\0) }"

+ 220
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/docie.ps View File

@@ -0,0 +1,220 @@
1
+%    Copyright (C) 1995 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: docie.ps 8411 2007-11-28 18:39:59Z ray $
17
+% docie.ps
18
+% Emulate CIE algorithms in PostScript.
19
+
20
+% ---------------- Auxiliary procedures ---------------- %
21
+
22
+/r1default [0 1] def
23
+/r3default [0 1 0 1 0 1] def
24
+
25
+/apply3		% <u> <v> <w> [<pu> <pv> <pw>] apply3 <u'> <v'> <w'>
26
+ {  { 4 -1 roll exch exec } forall
27
+ } bind def
28
+
29
+/restrict	% <u> <min> <max> restrict <u'>
30
+ { 3 1 roll .max .min
31
+ } bind def
32
+
33
+/restrict3	% <u> <v> <w> [<minu> ... <maxw>] restrict3 <u'> <v'> <w'>
34
+ { aload pop
35
+   7 -1 roll 3 1 roll restrict 7 1 roll
36
+   5 -1 roll 3 1 roll restrict 5 1 roll
37
+   restrict 3 1 roll
38
+ } bind def
39
+
40
+/rescale	% <u> <min> <max> rescale <u'>
41
+ { 1 index sub 3 1 roll sub exch div 0 .max 1 .min
42
+ } bind def
43
+
44
+/rescale3	% <u> <v> <w> [<minu> ... <maxw>] rescale3 <u'> <v'> <w'>
45
+ { aload pop
46
+   7 -1 roll 3 1 roll rescale 7 1 roll
47
+   5 -1 roll 3 1 roll rescale 5 1 roll
48
+   rescale 3 1 roll
49
+ } bind def
50
+
51
+/mmult3		% <u> <v> <w> [<uu> <uv> ... <wv> <ww>] mmult3
52
+		%   <u'> <v'> <w'>
53
+ { 4 -1 roll dup dup 6 -1 roll dup dup 8 -1 roll dup dup
54
+   10 -1 roll { 10 -1 roll mul } forall
55
+		% Stack: u1 v1 w1 u2 v2 w2 u3 v3 w3
56
+   4 -1 roll add 6 -1 roll add
57
+		% Stack: u1 v1 u2 v2 u3 v3 w'
58
+   7 1 roll 3 -1 roll add 4 -1 roll add
59
+		% Stack: w' u1 u2 u3 v'
60
+   5 1 roll add add 3 1 roll
61
+ } bind def
62
+
63
+/minvert3	% [<uu> <uv> ... <wv> <ww>] minvert3
64
+		%   [<uu'> <uv'> ... <wv'> <ww'>]
65
+ { 16 dict begin
66
+   aload pop { I H G F E D C B A } { exch def } forall
67
+   /coa E I mul F H mul sub def
68
+   /cob F G mul D I mul sub def
69
+   /coc D H mul E G mul sub def
70
+   /det A coa mul B cob mul add C coc mul add def
71
+   [ coa det div
72
+     C H mul B I mul sub det div
73
+     B F mul C E mul sub det div
74
+     cob det div
75
+     A I mul C G mul sub det div
76
+     C D mul A F mul sub det div
77
+     coc det div
78
+     B G mul A H mul sub det div
79
+     A E mul B D mul sub det div
80
+   ]
81
+   end
82
+ } bind def
83
+
84
+/print1
85
+ { print dup ==
86
+ } bind def
87
+
88
+/print3
89
+ { print 3 array astore dup == aload pop
90
+ } bind def
91
+
92
+% ---------------- Mapping to XYZ ---------------- %
93
+
94
+/csmap		% <csdict> <l> <m> <n> csmap <csdict> <x> <y> <z>
95
+ { 3 index /RangeLMN .knownget not { r3default } if restrict3
96
+DOCIEDEBUG { (After RangeLMN Decode: ) print3 } if
97
+   3 index /DecodeLMN .knownget { apply3 } if
98
+DOCIEDEBUG { (After DecodeLMN Decode: ) print3 } if
99
+   3 index /MatrixLMN .knownget { mmult3 } if
100
+DOCIEDEBUG { (After MatrixLMN Decode: ) print3 } if
101
+ } bind def
102
+
103
+/csciea		% <csdict> <a> csciea <csdict> <x> <y> <z>
104
+ { 1 index /RangeA .knownget not { r1default aload pop } if restrict
105
+DOCIEDEBUG { (After RangeA Decode: ) print1 } if
106
+   1 index /DecodeA .knownget { exec } if
107
+DOCIEDEBUG { (After DecodeA Decode: ) print1 } if
108
+   1 index /MatrixA .knownget
109
+    { { 1 index mul exch } forall pop }
110
+    { dup dup }
111
+   ifelse
112
+DOCIEDEBUG { (After MatrixA Decode: ) print3 } if
113
+   csmap
114
+ } bind def
115
+
116
+/cscieabc	% <csdict> <a> <b> <c> cscieabc <csdict> <x> <y> <z>
117
+ { 3 index /RangeABC .knownget not { r3default } if restrict3
118
+DOCIEDEBUG { (After RangeABC Decode: ) print3 } if
119
+   3 index /DecodeABC .knownget { apply3 } if
120
+DOCIEDEBUG { (After DecodeABC Decode: ) print3 } if
121
+   3 index /MatrixABC .knownget { mmult3 } if
122
+DOCIEDEBUG { (After MatrixABC Decode: ) print3 } if
123
+   csmap
124
+ } bind def
125
+
126
+% ---------------- Rendering from XYZ ---------------- %
127
+
128
+/lookup3	% <rtable> <a[0..1]> <b[0..1]> <c[0..1]> lookup3
129
+		%   <rtable> <bytes>
130
+ { 3 -1 roll 3 index 0 get 1 sub mul
131
+   3 -1 roll 3 index 1 get 1 sub mul
132
+   3 -1 roll 3 index 2 get 1 sub mul
133
+		% Stack: rtable ia ib ic
134
+DOCIEDEBUG { (RenderTable indices: ) print3 mark 5 1 roll } if
135
+   3 -1 roll round cvi 3 index 3 get exch get
136
+		% Stack: rtable ib ic string
137
+   3 -1 roll round cvi 3 index 2 get mul
138
+		% Stack: rtable ic string ib*nc
139
+   3 -1 roll round cvi add 2 index 4 get mul
140
+		% Stack: rtable string index
141
+   2 index 4 get getinterval
142
+		% Stack: rtable bytes
143
+DOCIEDEBUG { (RenderTable values: ) print (<) print (%stdout) (w) file 1 index writehexstring (>) = } if
144
+ } bind def
145
+
146
+/bpdefault [0 0 0] def
147
+
148
+/crmap		% <csdict> <crdict> <x> <y> <z> crmap <v1> ...
149
+ {
150
+DOCIEDEBUG { (CIE XYZ = ) print3 } if
151
+   3 index /MatrixPQR .knownget { mmult3 } if
152
+DOCIEDEBUG { (After MatrixPQR: ) print3 } if
153
+   4 index /WhitePoint get
154
+   5 index /BlackPoint .knownget not { bpdefault } if
155
+   5 index /WhitePoint get
156
+   6 index /BlackPoint .knownget not { bpdefault } if
157
+   4
158
+     { 4 -1 roll aload pop
159
+			% Stack: csdict crdict x y z pt pt pt px py pz
160
+       3 copy 12 index /MatrixPQR .knownget { mmult3 } if 6 array astore
161
+     }
162
+   repeat
163
+			% Stack: csdict crdict x y z wps+ bps+ wpd+ bpd+
164
+   9 -1 roll pop		% get rid of csdict
165
+   7 4 roll
166
+   7 index /TransformPQR get
167
+    {			% Stack: crdict wps+ bps+ wpd+ bpd+ u v w proc
168
+      8 copy exch pop exch pop
169
+      exec exch pop 4 -1 roll pop
170
+    }
171
+   forall
172
+   7 3 roll pop pop pop pop	% get rid of White/BlackPoints
173
+DOCIEDEBUG { (After TransformPQR: ) print3 } if
174
+   3 index /MatrixPQR .knownget { minvert3 mmult3 } if
175
+DOCIEDEBUG { (After MatrixPQR': ) print3 } if
176
+   3 index /MatrixLMN .knownget { mmult3 } if
177
+DOCIEDEBUG { (After MatrixLMN Encode: ) print3 } if
178
+   3 index /EncodeLMN .knownget { apply3 } if
179
+DOCIEDEBUG { (After EncodeLMN Encode: ) print3 } if
180
+   3 index /RangeLMN .knownget not { r3default } if restrict3
181
+DOCIEDEBUG { (After RangeLMN Encode: ) print3 } if
182
+   3 index /MatrixABC .knownget { mmult3 } if
183
+DOCIEDEBUG { (After MatrixABC Encode: ) print3 } if
184
+   3 index /EncodeABC .knownget { apply3 } if
185
+DOCIEDEBUG { (After EncodeABC Encode: ) print3 } if
186
+   3 index /RangeABC .knownget not { r3default } if
187
+   5 -1 roll /RenderTable .knownget
188
+    {		% Stack: u v w ranges rtable
189
+      5 1 roll rescale3
190
+DOCIEDEBUG { (Rescaled ABC: ) print3 } if
191
+		% Stack: rtable a b c
192
+      lookup3
193
+		% Stack: rtable bytes
194
+      0 1 3 index 4 get 1 sub
195
+       {	% Stack: values rtable bytes c
196
+	 2 copy get 255 div
197
+		% Stack: values rtable bytes c v
198
+	 3 index 3 -1 roll 5 add get exec 3 1 roll
199
+       }
200
+      for pop pop
201
+DOCIEDEBUG { (After RenderTableT: ) print ] dup == aload pop } if
202
+    }
203
+    { restrict3
204
+DOCIEDEBUG { (After RangeABC Encode: ) print3 } if
205
+    }
206
+   ifelse
207
+ } bind def
208
+
209
+% ---------------- Top level control ---------------- %
210
+
211
+/mapdict mark
212
+  /CIEBasedA { 1 get exch csciea currentcolorrendering 4 1 roll crmap } bind
213
+  /DeviceGray { pop /DefaultGray /ColorSpace findresource 1 get exch csciea currentcolorrendering 4 1 roll crmap } bind
214
+  /CIEBasedABC { 1 get 4 1 roll cscieabc currentcolorrendering 4 1 roll crmap } bind
215
+  /DeviceRGB { pop /DefaultRGB /ColorSpace findresource 1 get 4 1 roll cscieabc currentcolorrendering 4 1 roll crmap } bind
216
+.dicttomark def
217
+/mapcie		% <a> mapcie <v1> ...
218
+		% <a> <b> <c> mapcie <v1> ...
219
+ { currentcolorspace dup 0 get //mapdict exch get exec
220
+ } bind def

+ 30
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint View File

@@ -0,0 +1,30 @@
1
+#!/bin/sh
2
+# $Id: dumphint 9320 2009-01-04 20:11:57Z till $
3
+# Linearized PDF hint formatting utility.
4
+
5
+# This definition is changed on install to match the
6
+# executable name set in the makefile
7
+GS_EXECUTABLE=gs
8
+gs="`dirname $0`/$GS_EXECUTABLE"
9
+if test ! -x "$gs"; then
10
+	gs="$GS_EXECUTABLE"
11
+fi
12
+GS_EXECUTABLE="$gs"
13
+
14
+
15
+OPTIONS="-dSAFER -dDELAYSAFER"
16
+while true
17
+do
18
+	case "$1" in
19
+	-?*) OPTIONS="$OPTIONS $1" ;;
20
+	*)  break ;;
21
+	esac
22
+	shift
23
+done
24
+
25
+if [ $# -ne 1 ]; then
26
+	echo "Usage: `basename $0` input.pdf" 1>&2
27
+	exit 1
28
+fi
29
+
30
+exec "$GS_EXECUTABLE" -q -dNODISPLAY $OPTIONS -- "`dirname $0`/dumphint.ps" "$1"

+ 22
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint.bat View File

@@ -0,0 +1,22 @@
1
+@echo off 
2
+@rem $Id: dumphint.bat 6300 2005-12-28 19:56:24Z giles $
3
+@rem Linearized PDF hint formatting utility.
4
+
5
+if %1/==/ goto usage
6
+call gssetgs.bat
7
+echo -q -dNODISPLAY -dSAFER -dDELAYSAFER >_.at
8
+:cp
9
+if %2/==/ goto doit
10
+echo %2 >>_.at
11
+shift
12
+goto cp
13
+
14
+:doit
15
+%GSC% -q @_.at -- dumphint.ps %1
16
+if exist _.at erase _.at
17
+goto end
18
+
19
+:usage
20
+echo Usage: dumphint input.pdf
21
+
22
+:end

+ 756
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dumphint.ps View File

@@ -0,0 +1,756 @@
1
+% Copyright (C) 2000, 2001 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: dumphint.ps 8284 2007-10-10 17:40:38Z giles $
17
+% Linearized PDF hint formatting utility.
18
+
19
+%
20
+% Linearized PDF hints generated by Acrobat suite seem to deviate from
21
+% the published specification.
22
+%
23
+% /P (page offset hint table) key in hint stream is not generated by
24
+% Adobe products. The key is no longer required in PDF 1.5.
25
+%
26
+% Per-page items 4 and 5 of the page offset hint table start from 1st
27
+% page rather than 2nd page as the spec claims.
28
+%
29
+% All array entries start from the new byte boundary.
30
+%
31
+
32
+/table_width 79 def 
33
+/col1_width  66 def
34
+
35
+% Skip bits to the next byte boundary
36
+/bytealign {		% <stream> bytealign -
37
+  begin /N 0 def /B 0 def end
38
+} bind def
39
+
40
+% Set bit stream position and align it to byte boundary
41
+/set_align {            % <<>> pos set_align -
42
+  exch begin
43
+  S exch setfileposition
44
+  /N 0 def /B 0 def
45
+  end
46
+} bind def
47
+
48
+% Read requested number of bits from the bit stream.
49
+/bitread {		% <bstream> <width> bitwrite <value>
50
+  exch begin
51
+  0                     %  bit val
52
+  { 
53
+    1 index N .min      %  bit val m
54
+    dup 3 1 roll        %  bit m val m 
55
+    bitshift            %  bit m val<<m
56
+    B 2 index N sub     %  bit m val<<m B m-N
57
+    bitshift add        %  bit m val<<m+B>>(N-m)
58
+    3 -1 roll           %  m val' bit 
59
+    2 index sub         %  m val' bit'
60
+    3 -1 roll           %  val' bit' m
61
+    N exch sub dup      %  val' bit' N' N'
62
+    1 exch bitshift     %  val' bit' N' 1<<N'
63
+    1 sub B and         %  val' bit' N' B&(1<<N')
64
+    /B exch def         %  val' bit' N'
65
+    /N exch def         %  val' bit'
66
+    dup 0 le {
67
+      pop exit          %  val'
68
+    } if
69
+    /N N 8 add def
70
+    /B B 8 bitshift S read not { 0 ( *** EOF! *** ) = } if add def
71
+    exch
72
+  } loop                %  bit' val'
73
+  end
74
+} bind def
75
+
76
+% Print a string several times
77
+/multiprint {           % cnt (s) multiprint -
78
+  exch { dup print } repeat pop
79
+} bind def
80
+
81
+% Split the line into 2 substrings.
82
+/split_line {           % (s) split_line () ()
83
+  dup length col1_width gt {
84
+    col1_width 1 sub
85
+    dup -1 0 {
86
+      dup               % (s) w i i
87
+      3 index           % (s) w i i ()
88
+      exch get          % (s) w i c
89
+      32 eq {
90
+        exch pop exit
91
+      } if
92
+      pop
93
+    } for
94
+    1 add               % (s) w'
95
+    1 index exch        % (s) (s) w'
96
+    0 exch              % (s) (s) 0 w'
97
+    getinterval         % (s) (v)
98
+  } {
99
+    dup                 % (s) (s)
100
+  } ifelse                  
101
+  (\n) search {
102
+    4 1 roll            % (pre) (s) (post) (match)
103
+    pop pop             % (pre) (s)
104
+    1 index length      % (pre) (s) len
105
+    1 add               % (pre) (s) len+1
106
+  } {
107
+    exch                % (pre) (s)
108
+    1 index length      % (pre) (s) len
109
+  } ifelse
110
+  1 index length        % (pre) (s) len Len
111
+  1 index sub           % (pre) (s) len Len-len
112
+  getinterval           % (pre) (post)
113
+} bind def
114
+
115
+% Print a 2 column table. The string is printed in 1st column
116
+% left-aligned. The number is printed in 2nd column right-aligned.
117
+/two_column {           % n () two_column -
118
+  split_line            % n (a) ()
119
+  3 1 roll              % () n (a)
120
+  dup length            % () n (a) len
121
+  exch print            % () n len
122
+  exch =string cvs      % () len (n)
123
+  dup length            % () len (n) len2
124
+  3 -1 roll add         % () (n) len+len2 
125
+  //table_width         % () (n) len+len2 78
126
+  exch sub              % () (n) 78-len+len2 
127
+  ( ) multiprint        % () (n)
128
+  =                     % ()
129
+  { dup length 0 eq { exit } if
130
+    split_line exch =
131
+  } loop
132
+  pop
133
+  () =
134
+} bind def
135
+
136
+% Print the header of a hint table
137
+/table_header {               % () table_header -
138
+  dup length dup
139
+  table_width exch sub 2 idiv % () len sp
140
+  dup ( ) multiprint          % () len sp
141
+  3 -1 roll =                 % len sp
142
+  ( ) multiprint              % len
143
+  (=) multiprint
144
+  ()= ()=
145
+} bind def
146
+
147
+% Pretty-print an array on top level
148
+/dump_array {               % [ ] dump_array -
149
+  ([) = ( ) print
150
+  1 exch {
151
+    =string cvs         % pos ()
152
+    dup length dup      % pos () len len
153
+    3 index add 1 add   % pos () len len+pos+1
154
+    table_width gt {
155
+      () =
156
+      (  ) print        % pos () len
157
+      2 add             % pos () pos'
158
+      3 1 roll print pop % pos'
159
+    } {
160
+      ( ) print         % pos () len
161
+      exch print        % pos len
162
+      add 1 add         % pos'
163
+    } ifelse
164
+  } forall
165
+  pop
166
+  () = (]) =
167
+} bind def
168
+
169
+% Pretty-print an array on 2nd level
170
+/dump_array2 {             % [ ] dump_array2 -
171
+  (  [) print
172
+  3 exch {
173
+    =string cvs            % pos ()
174
+    dup length dup         % pos () len len
175
+    3 index add 1 add      % pos () len len+pos+1
176
+    table_width 2 sub gt {
177
+      () =
178
+      (    ) print         % pos () len
179
+      4 add                % pos () pos'
180
+      3 1 roll print pop   % pos'
181
+    } {
182
+      ( ) print            % pos () len
183
+      exch print           % pos len
184
+      add 1 add            % pos'
185
+    } ifelse
186
+  } forall
187
+  pop
188
+  ( ]) =
189
+} bind def
190
+
191
+% Print an array header
192
+/array_header {
193
+  () = =
194
+} bind def
195
+
196
+% Analyze the page offset hint table.
197
+/dump_page_offset_table {  % - dump_page_offset_table -
198
+  hint_stream
199
+    
200
+  dup 32 bitread
201
+  dup /hint_minnop exch def
202
+  (1. The least number of objects in a page.) two_column
203
+
204
+  dup 32 bitread
205
+  dup /hint_1st_obj exch def
206
+  (2. Location of the first page's page object.) two_column
207
+
208
+  dup 16 bitread
209
+  dup /hint_maxnopbits exch def
210
+  (3. Bits for difference between max and min number of page objects.) two_column
211
+
212
+  dup 32 bitread
213
+  dup /hint_minpl exch def
214
+  (4. Least length of a page.) two_column
215
+
216
+  dup 16 bitread
217
+  dup /hint_maxplbits exch def
218
+  (5. Bits for difference between max and min length of a page.) two_column
219
+
220
+  dup 32 bitread
221
+  dup /hint_minsco exch def
222
+  (6. Least start of Contents offset. ) 
223
+  1 index 0 ne { (\n*** Acrobat expects 0 ***) concatstrings } if
224
+  two_column
225
+
226
+  dup 16 bitread
227
+  dup /hint_maxscobits exch def
228
+  (7. Bits for difference between max and min offset to the start of the content stream.) two_column
229
+
230
+  dup 32 bitread
231
+  dup /hint_mincl exch def
232
+  (8. Least contents length.) two_column
233
+
234
+  dup 16 bitread
235
+  dup /hint_maxclbits exch def
236
+  (9. Bits needed to represent the greatest Contents length.) two_column
237
+
238
+  dup 16 bitread
239
+  dup /hint_maxsorbits exch def
240
+  (10. Bits needed to represent the greatest number of Shared Object references.) two_column
241
+
242
+  dup 16 bitread
243
+  dup /hint_sobits exch def
244
+  (11. Bits needed to identify a Shared Object.) two_column
245
+
246
+  dup 16 bitread
247
+  dup /hint_numfbits exch def
248
+  (12. Bits needed to represent numerator of fraction.) two_column
249
+
250
+  dup 16 bitread
251
+  dup /hint_denf exch def
252
+  (13. Denominator of fraction.) two_column
253
+
254
+  pop 
255
+
256
+  LinearizationParams /N get
257
+
258
+  % 1. Number of objects in the page.
259
+  hint_stream bytealign
260
+  /hint_page_obj [
261
+    2 index {
262
+      hint_stream hint_maxnopbits bitread
263
+      hint_minnop add
264
+    } repeat
265
+  ] readonly def
266
+
267
+  (1. Number of objects on the page) array_header
268
+  hint_page_obj dump_array
269
+
270
+  % 2, Page length in bytes.
271
+  hint_stream bytealign
272
+  /hint_page_len [
273
+    2 index {
274
+      hint_stream hint_maxplbits bitread
275
+      hint_minpl add
276
+    } repeat
277
+  ] readonly def
278
+
279
+  (2. Page length in bytes.) array_header
280
+  hint_page_len dump_array
281
+
282
+  % 3, Number of shared objects referenced from the page
283
+  hint_stream bytealign
284
+  /hint_page_sobj [
285
+    2 index {
286
+      hint_stream hint_maxsorbits bitread
287
+    } repeat
288
+  ] readonly def
289
+
290
+  (3. Number of shared objects referenced from the page.) array_header
291
+  hint_page_sobj dump_array
292
+
293
+  % 4. Index into the shared objects hint table
294
+  hint_stream bytealign
295
+  /hint_page_sobj_id [
296
+    0 1 4 index 1 sub {
297
+      hint_page_sobj exch get [
298
+        exch {
299
+          hint_stream hint_sobits bitread
300
+        } repeat
301
+      ] readonly
302
+    } for
303
+  ] readonly def
304
+
305
+  (4. Index into the shared objects hint table.) array_header
306
+  ([) =
307
+  hint_page_sobj_id { dump_array2 } forall
308
+  (])=
309
+
310
+  % 5. Fractional position for each shared object reference
311
+  hint_stream bytealign
312
+  /hint_page_sobj_pos [
313
+    0 1 4 index 1 sub {
314
+      hint_page_sobj exch get [
315
+        exch {
316
+          hint_stream hint_numfbits bitread
317
+          hint_denf div
318
+        } repeat
319
+      ] readonly
320
+    } for
321
+  ] readonly def
322
+
323
+  (5. Fractional position for each shared object reference. ) array_header
324
+  ([)=
325
+  hint_page_sobj_pos { dump_array2 } forall
326
+  (])=
327
+
328
+  % 6. Offset of the page's content stream from the beginning of the page.
329
+  hint_stream bytealign
330
+  /hint_page_content_offset [
331
+    2 index {
332
+      hint_stream hint_maxscobits bitread
333
+      hint_minsco add
334
+    } repeat
335
+  ] readonly def
336
+
337
+  (6. Offset of the page's content stream from the beginning of the page.) array_header
338
+  hint_page_content_offset dump_array
339
+
340
+  % 7. Length of the page's content stream in bytes.
341
+  hint_stream bytealign
342
+  /hint_page_content_len [
343
+    2 index {
344
+      hint_stream hint_maxclbits bitread
345
+      hint_mincl add
346
+    } repeat
347
+  ] readonly def
348
+
349
+  (7. Length of the page's content stream in bytes.) array_header
350
+  hint_page_content_len dump_array
351
+
352
+  pop
353
+} bind def
354
+
355
+% Analyze tha shared object hint table
356
+/dump_shared_object_table { 
357
+  hint_stream
358
+    
359
+  dup 32 bitread
360
+  dup /shint_1st_obj_id exch def
361
+  (1. Object number of the first object in the shared objects section) two_column
362
+
363
+  dup 32 bitread
364
+  dup /shint_1st_obj_pos exch def
365
+  (2. Location of the first object in the shared objects section.) two_column
366
+
367
+  dup 32 bitread
368
+  dup /shint_1st_shared exch def
369
+  (3. The number of shared object entries for the first page.) two_column
370
+
371
+  dup 32 bitread
372
+  dup /shint_all_shared exch def
373
+  (4. Number of shared object entries for the shared objects section including 1st page.) two_column
374
+
375
+  dup 16 bitread
376
+  dup /shint_group_bits exch def
377
+  (5. Number of bits needed to represent the greatest number of objects in a shared object group.) two_column
378
+
379
+  dup 32 bitread
380
+  dup /shint_group_least_sz exch def
381
+  (6. Least length of a shared object group in bytes.) two_column
382
+
383
+  dup 16 bitread
384
+  dup /shint_group_diff_bits exch def
385
+  (7. Bits for the difference between the greatest and least length of a shared object group size.)  two_column
386
+  pop
387
+
388
+  (1. length of the object group in bytes.) array_header
389
+  hint_stream bytealign
390
+  /shint_group_sz [
391
+    shint_all_shared {
392
+      hint_stream shint_group_diff_bits bitread
393
+      shint_group_least_sz add
394
+    } repeat
395
+  ] readonly def
396
+
397
+  shint_group_sz dump_array
398
+
399
+  (2. MD5 signature flag) array_header
400
+    hint_stream bytealign
401
+    /shint_md5_flags
402
+    [ shint_all_shared 
403
+      { hint_stream 1 bitread
404
+      } repeat
405
+    ] readonly def
406
+
407
+    shint_md5_flags dump_array
408
+
409
+    (3. MD5 signature string) array_header
410
+    false shint_md5_flags { 0 ne or } forall { 
411
+      shint_md5_flags {
412
+        0 eq {
413
+          (<>)=
414
+        } {
415
+          hint_stream /S get 128 string
416
+          readstring pop
417
+          dup length 128 eq {
418
+            ==
419
+          } { pop (Error reading nd5 string.) ==
420
+          } ifelse
421
+        } ifelse
422
+      } forall   
423
+    } {
424
+      () = (none) =
425
+    } ifelse
426
+
427
+    (4. The number of objects in the group.) array_header
428
+    hint_stream bytealign
429
+    /shint_group_cnt [
430
+      shint_all_shared {
431
+        hint_stream shint_group_bits bitread
432
+      } repeat
433
+    ] readonly def
434
+
435
+    shint_group_cnt dump_array
436
+
437
+  } bind def
438
+
439
+% Analyze the thumbnail hint table.
440
+/dump_thumbnail_table {
441
+  hint_stream
442
+
443
+  dup 32 bitread
444
+  dup /thint_1st_obj_id exch def
445
+  (1. Object number of the first thumbnail image.) two_column
446
+
447
+  dup 32 bitread
448
+  dup /thint_1st_obj_pos exch def
449
+  (2. Location of the first thumbnail image.) two_column
450
+
451
+  dup 32 bitread
452
+  dup /thint_page_cnt exch def
453
+  (3. Number of pages that have thumbnail images.) two_column
454
+
455
+  dup 16 bitread
456
+  dup /thint_no_thumbnail_bits exch def
457
+  (4. Bits for the max number of consecutive pages without a thumbnail image.) two_column
458
+
459
+  dup 32 bitread
460
+  dup /thint_min_sz exch def
461
+  (5. The least length of a thumbnail image in bytes.) two_column
462
+
463
+  dup 15 bitread
464
+  dup /thint_obj_sz_bits exch def
465
+  (6. Bits for the difference between max and min length of a thumbnail image.) two_column
466
+
467
+  dup 32 bitread
468
+  dup /thint_min_obj_cnt exch def
469
+  (7. The least number of objects in a thumbnail image.) two_column
470
+
471
+  dup 16 bitread
472
+  dup /thint_obj_cnt_bits exch def
473
+  (8. Bits for the difference between max and min number of objects in a thumbnail image.) two_column
474
+
475
+  dup 32 bitread
476
+  dup /thint_1st_shared_obj exch def
477
+  (9. First object in the thumbnail shared objects section.) two_column
478
+
479
+  dup 32 bitread
480
+  dup /thint_1st_shared_pos exch def
481
+  (10. Location of the first object in the thumbnail shared objects section.) two_column
482
+
483
+  dup 32 bitread
484
+  dup /thint_shared_cnt exch def
485
+  (11. Number of thumbnail shared objects.) two_column
486
+
487
+  dup 32 bitread
488
+  dup /thint_shared_section_sz exch def
489
+  (12. Length of the thumbnail shared objects section in bytes.) two_column
490
+
491
+  pop
492
+  LinearizationParams /N get
493
+
494
+  (1. The number of preceding pages lacking a thumbnail image.) array_header
495
+  hint_stream bytealign
496
+  /thint_no_thumbnail_pages [
497
+    2 index {
498
+      hint_stream thint_no_thumbnail_bits bitread
499
+    } repeat
500
+  ] readonly def
501
+
502
+  thint_no_thumbnail_pages dump_array
503
+
504
+  (2. Number of objects in this page's thumbnail image.) array_header
505
+  hint_stream bytealign
506
+  /thint_page_obj_cnt [
507
+    2 index {
508
+      hint_stream thint_obj_cnt_bits bitread
509
+      thint_min_obj_cnt add
510
+    } repeat
511
+  ] readonly def
512
+
513
+  thint_page_obj_cnt dump_array
514
+
515
+  (3. Length of this page's thumbnail image in bytes.) array_header
516
+  hint_stream bytealign
517
+  /thint_page_obj_sz [
518
+    2 index {
519
+      hint_stream thint_obj_sz_bits bitread
520
+      thint_min_sz add
521
+    } repeat
522
+  ] readonly def
523
+
524
+  thint_page_obj_sz dump_array
525
+  pop
526
+} bind def
527
+
528
+% Analyze the generic hint table.
529
+% The hint field names are re-used. 
530
+/dump_generic_table { 
531
+  hint_stream
532
+
533
+  dup 32 bitread
534
+  dup /ghint_1st_obj exch def
535
+  (1. Object number of the first object in the group.) two_column
536
+
537
+  dup 32 bitread
538
+  dup /ghint_1st_obj_pos exch def
539
+  (2. Location of the first object in the group.) two_column
540
+
541
+  dup 32 bitread
542
+  dup /ghint_obj_cnt exch def
543
+  (3. Number of objects in the group.) two_column
544
+
545
+  dup 32 bitread
546
+  dup /ghint_group_sz exch def
547
+  (4. Length of the object group in bytes.) two_column
548
+
549
+  pop
550
+} bind def
551
+
552
+% Analyze the interactive hint table.
553
+% The hint field names are re-used.
554
+/dump_interactive_table {
555
+  hint_stream
556
+
557
+  dup 32 bitread
558
+  dup /ihint_1st_obj exch def
559
+  (1. Object number of the first object in the group.) two_column
560
+
561
+  dup 32 bitread
562
+  dup /ihint_1st_obj_pos exch def
563
+  (2. Location of the first object in the group.) two_column
564
+
565
+  dup 32 bitread
566
+  dup /ihint_obj_cnt exch def
567
+  (3. Number of objects in the group.) two_column
568
+
569
+  dup 32 bitread
570
+  dup /ihint_group_sz exch def
571
+  (4. Length of the object group in bytes.) two_column
572
+
573
+  dup 32 bitread
574
+  dup /ihint_shared_cnt exch def
575
+  (5. Number of shared object references.) two_column
576
+
577
+  dup 16 bitread
578
+  dup /ihint_shared_obj_bits exch def
579
+  (6. Bits for the max shared object id used by the interactive form or the logical structure hierarchy.)
580
+  1 index hint_sobits ne {
581
+    (\n*** This fiels is not equal to max shared object ID bits ***) concatstrings 
582
+  } if
583
+
584
+  pop
585
+
586
+  (7. Shared object identifier.) array_header
587
+  hint_stream bytealign
588
+  /ihint_shared_obj_id [
589
+    ihint_shared_cnt {
590
+      hint_stream hint_sobits bitread
591
+    } repeat
592
+  ] readonly def
593
+
594
+  ihint_shared_obj_id dump_array
595
+} bind def
596
+
597
+% Enumerate all documented hint tables.
598
+/dump_all_tables {  % <<stream>> dump_all_tables -
599
+  (Page offset hint table) table_header
600
+  hint_stream 0 set_align
601
+  dump_page_offset_table
602
+
603
+  (S, Shared object hint table) table_header
604
+  dup /S .knownget {
605
+    hint_stream exch set_align
606
+    dump_shared_object_table
607
+  } {
608
+    (Required table is not found.) error_msg
609
+  } ifelse
610
+
611
+  dup /T .knownget {
612
+    (T, Thumbnail hint table) table_header
613
+    hint_stream exch set_align
614
+    dump_thumbnail_table
615
+  } if   
616
+
617
+  dup /O .knownget {
618
+    (O, Outline hint table) table_header
619
+    hint_stream exch set_align
620
+    dump_generic_table
621
+  } if
622
+
623
+  dup /A .knownget {
624
+    (A, Thread information hint table) table_header 
625
+    hint_stream exch set_align
626
+    dump_generic_table
627
+  } if
628
+
629
+  dup /E .knownget {
630
+    (E, Named destination hint table) table_header
631
+    hint_stream exch set_align
632
+    dump_generic_table
633
+  } if
634
+
635
+  dup /V .knownget {
636
+    (V, Interactive form hint table) table_header
637
+    hint_stream exch set_align
638
+    dump_interactive_table
639
+  } if
640
+
641
+  dup /I .knownget {
642
+    (I, Information dictionary hint table) table_header
643
+    hint_stream exch set_align
644
+    dump_generic_table
645
+  } if
646
+
647
+  dup /C .knownget {
648
+    (C, Logical structure hint table) table_header
649
+    hint_stream exch set_align
650
+    dump_interactive_table
651
+  } if
652
+
653
+  dup /L .knownget {
654
+    (L, Page label hint table) table_header
655
+    hint_stream exch set_align
656
+    dump_generic_table
657
+  } if
658
+
659
+    pop
660
+} bind def
661
+
662
+
663
+% Load PDF file and extract the hint stream.
664
+/pdf_dump_hints {                             % <infile> pdf_dump_hints -
665
+  dup (r) file                                % fname
666
+  false exch                                  % fname F file 
667
+  {
668
+    dup 7 string readstring pop               % fname F file ()
669
+    (%PDF-1.) ne { pop exit } if              % fname F file
670
+    dup 0 setfileposition
671
+    dup token not { pop exit } if             % fname F file obj
672
+    dup type /integertype ne { pop exit } if  % fname F file obj
673
+    1 index token not { pop pop exit } if     % fname F file obj gen
674
+    dup type /integertype ne {pop pop exit}if % fname F file obj gen
675
+    4 2 roll                                  % fname obj gen F file
676
+    dup 0 setfileposition
677
+    exch true or                              % fname obj gen file T
678
+    exit
679
+  } loop
680
+  {
681
+    pdfdict begin
682
+    pdfopenfile dup begin
683
+    40 dict begin
684
+    /IDict exch def
685
+    .setsafe
686
+
687
+    % Read all objects into memory.
688
+    Trailer touch
689
+    resolveR                                  % fname <<>>
690
+    dup /Linearized known {
691
+      dup /L get                              % fname <<>> Len
692
+      3 -1 roll status not { 0 0 0 0 } if     % <<>> Len
693
+      pop pop exch pop                        % <<>> Len len
694
+      eq {
695
+        /LinearizationParams exch def
696
+        LinearizationParams /H get
697
+        dup length 2 eq {
698
+          0 get PDFoffset add PDFfile exch setfileposition
699
+          PDFfile token pop 
700
+          PDFfile token pop
701
+          resolveR dup true resolvestream
702
+          /ReusableStreamDecode filter 
703
+          bitstream dup bytealign
704
+          /hint_stream exch def
705
+
706
+          dump_all_tables
707
+        } {
708
+          pop
709
+          (Overflow hint stream is not supported.) =
710
+        } ifelse
711
+      } {
712
+        pop
713
+        (Wrong file length in linearization dictionary.) =
714
+      } ifelse
715
+    } {
716
+      pop (The file is not linearized.) =
717
+    } ifelse
718
+    end		% temporary dict
719
+    end		% IDict
720
+    end
721
+  } {
722
+    pop
723
+    (Input file is not a valid PDF file.) =
724
+  } ifelse
725
+} bind def
726
+
727
+% Initial setup
728
+/dump_hints {
729
+  counttomark 1 eq {
730
+    exch pop
731
+    save exch
732
+    3000000 setvmthreshold
733
+    pdfoptdict begin 
734
+    pdf_dump_hints
735
+    end
736
+    restore
737
+    true
738
+  } {
739
+    cleartomark false
740
+  } ifelse
741
+} bind def
742
+
743
+/shellarguments {false} def
744
+(pdfopt.ps) runlibfile
745
+currentdict /shellarguments undef
746
+
747
+% Check for command line arguments.
748
+mark shellarguments {
749
+  dump_hints not {
750
+    (Usage: gs -dNODISPLAY  -- dumphint.ps input.pdf) = flush
751
+  } if
752
+} {
753
+  pop
754
+} ifelse
755
+
756
+% EOF

+ 47
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/dvipdf View File

@@ -0,0 +1,47 @@
1
+#!/bin/sh
2
+# $Id: dvipdf 9344 2009-01-10 22:11:18Z till $
3
+# Convert DVI to PDF.
4
+#
5
+# Please contact Andrew Ford <A.Ford@ford-mason.co.uk> with any questions
6
+# about this file.
7
+#
8
+# Based on ps2pdf
9
+
10
+# This definition is changed on install to match the
11
+# executable name set in the makefile
12
+GS_EXECUTABLE=gs
13
+
14
+
15
+OPTIONS=""
16
+DVIPSOPTIONS=""
17
+while true
18
+do
19
+	case "$1" in
20
+	-R*) DVIPSOPTIONS="$DVIPSOPTIONS $1";;
21
+	-?*) OPTIONS="$OPTIONS $1" ;;
22
+	*)  break ;;
23
+	esac
24
+	shift
25
+done
26
+
27
+if [ $# -lt 1 -o $# -gt 2 ]; then
28
+	echo "Usage: `basename $0` [options...] input.dvi [output.pdf]" 1>&2
29
+	exit 1
30
+fi
31
+
32
+infile=$1;
33
+
34
+if [ $# -eq 1 ]
35
+then
36
+	case "${infile}" in
37
+	  *.dvi)	base=`basename "${infile}" .dvi` ;;
38
+	  *)		base=`basename "${infile}"` ;;
39
+	esac
40
+	outfile="${base}".pdf
41
+else
42
+	outfile=$2
43
+fi
44
+
45
+# We have to include the options twice because -I only takes effect if it
46
+# appears before other options.
47
+exec dvips -Ppdf $DVIPSOPTIONS -q -f "$infile" | $GS_EXECUTABLE $OPTIONS -q -dNOPAUSE -dBATCH -sDEVICE=pdfwrite -sstdout=%stderr -sOutputFile="$outfile" $OPTIONS -c .setpdfwrite -

+ 29
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps View File

@@ -0,0 +1,29 @@
1
+#!/bin/sh
2
+# $Id: eps2eps 9344 2009-01-10 22:11:18Z till $
3
+# "Distill" Encapsulated PostScript.
4
+
5
+# This definition is changed on install to match the
6
+# executable name set in the makefile
7
+GS_EXECUTABLE=gs
8
+gs="`dirname $0`/$GS_EXECUTABLE"
9
+if test ! -x "$gs"; then
10
+	gs="$GS_EXECUTABLE"
11
+fi
12
+GS_EXECUTABLE="$gs"
13
+
14
+OPTIONS="-dDEVICEWIDTH=250000 -dDEVICEHEIGHT=250000"
15
+while true
16
+do
17
+	case "$1" in
18
+	-?*) OPTIONS="$OPTIONS $1" ;;
19
+	*)  break ;;
20
+	esac
21
+	shift
22
+done
23
+
24
+if [ $# -ne 2 ]; then
25
+	echo "Usage: `basename $0` ...switches... input.eps output.eps" 1>&2
26
+	exit 1
27
+fi
28
+
29
+exec "$GS_EXECUTABLE" -q -sDEVICE=epswrite -sstdout=%stderr "-sOutputFile=$2" -dNOPAUSE -dBATCH -dSAFER $OPTIONS "$1"

+ 26
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps.bat View File

@@ -0,0 +1,26 @@
1
+@echo off 
2
+@rem $Id: eps2eps.bat 6300 2005-12-28 19:56:24Z giles $
3
+@rem "Distill" Encapsulated PostScript.
4
+
5
+if %1/==/ goto usage
6
+if %2/==/ goto usage
7
+call gssetgs.bat
8
+echo -dNOPAUSE -dBATCH -dSAFER >_.at
9
+rem Watcom C deletes = signs, so use # instead.
10
+echo -dDEVICEWIDTH#250000 -dDEVICEHEIGHT#250000 >>_.at
11
+:cp
12
+if %3/==/ goto doit
13
+echo %1 >>_.at
14
+shift
15
+goto cp
16
+
17
+:doit
18
+rem Watcom C deletes = signs, so use # instead.
19
+%GSC% -q -sDEVICE#epswrite -sOutputFile#%2 @_.at %1
20
+if exist _.at erase _.at
21
+goto end
22
+
23
+:usage
24
+echo "Usage: eps2eps ...switches... input.eps output.eps"
25
+
26
+:end

+ 36
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/eps2eps.cmd View File

@@ -0,0 +1,36 @@
1
+/* $Id: eps2eps.cmd 6300 2005-12-28 19:56:24Z giles $ */
2
+/*
3
+ * This file is maintained by a user: if you have any questions about it,
4
+ * please contact Mark Hale (mark.hale@physics.org).
5
+ */
6
+
7
+/* "Distill" Encapsulated PostScript. */
8
+
9
+parse arg params
10
+
11
+gs='@gsos2'
12
+
13
+if params='' then call usage
14
+
15
+options='-dNOPAUSE -dBATCH -dSAFER'
16
+
17
+/* extract options from command line */
18
+i=1
19
+param=word(params,i)
20
+do while substr(param,1,1)='-'
21
+	options=options param
22
+	i=i+1
23
+	param=word(params,i)
24
+end
25
+
26
+infile=param
27
+if infile='' then call usage
28
+outfile=word(params,i+1)
29
+if outfile='' then call usage
30
+
31
+gs '-q -sDEVICE=epswrite -sOutputFile='outfile options infile
32
+exit
33
+
34
+usage:
35
+say 'Usage: eps2eps ...switches... input.eps output.eps'
36
+exit

+ 206
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/fixmswrd.pl View File

@@ -0,0 +1,206 @@
1
+#!/usr/bin/perl
2
+# $Id: fixmswrd.pl 6300 2005-12-28 19:56:24Z giles $
3
+
4
+#   (C) 1997 Anthony Shipman
5
+# 
6
+#   This software is provided 'as-is', without any express or implied
7
+#   warranty.  In no event will the authors be held liable for any damages
8
+#   arising from the use of this software.
9
+# 
10
+#   Permission is granted to anyone to use this software for any purpose,
11
+#   including commercial applications, and to alter it and redistribute it
12
+#   freely, subject to the following restrictions:
13
+# 
14
+#   1. The origin of this software must not be misrepresented; you must not
15
+#      claim that you wrote the original software. If you use this software
16
+#      in a product, an acknowledgment in the product documentation would be
17
+#      appreciated but is not required.
18
+#   2. Altered source versions must be plainly marked as such, and must not be
19
+#      misrepresented as being the original software.
20
+#   3. This notice may not be removed or altered from any source distribution.
21
+# 
22
+#   Anthony Shipman    shipmana@acm.org
23
+
24
+# This program patches the postscript generated by MS Word printer drivers
25
+# so that they work with ghostview 1.5.  The problem is that the document
26
+# structuring conventions are not followed by Word.  The pages are supposed
27
+# to be independent but they depend on a dictionary being opened outside
28
+# of the pages.  The erroneous structure is
29
+# 
30
+# 	%%EndSetup
31
+# 	NTPSOct95 begin
32
+# 	%%Page: 1 1
33
+# 	<text>
34
+# 	showpage
35
+# 	%%Page: 2 2
36
+# 	<text>
37
+# 	showpage
38
+# 	......
39
+# 	%%Trailer
40
+# 	...
41
+# 	end
42
+# 	%%EOF
43
+# 
44
+# This only works if the all of the structure around the pages is preserved.
45
+# The opening of NTPSOct95 happens outside of any structured section so
46
+# it is never seen by ghostview.  We change the structure to
47
+# 
48
+# 	%%EndSetup
49
+# 	%%Page: 1 1
50
+# 	NTPSOct95 begin
51
+# 	<text>
52
+# 	showpage
53
+# 	end
54
+# 	%%Page: 2 2
55
+# 	NTPSOct95 begin
56
+# 	<text>
57
+# 	showpage
58
+# 	end
59
+# 	......
60
+# 	%%Trailer
61
+# 	...
62
+# 	%%EOF
63
+# 
64
+# That is the dictionary opening is repeated inside each page.
65
+# 
66
+# We add a comment to the document to mark that it has been converted.
67
+# This has the form 
68
+#	%LOCALGhostviewPatched
69
+#
70
+# Usage:
71
+#	fixmswrd [-v] [file [output-file]]
72
+
73
+require 'getopts.pl';
74
+
75
+#=================================================================
76
+
77
+$program = "fixmswrd";
78
+
79
+sub usage {
80
+    die "Usage: $program [-v] [file [output-file]]\n";
81
+}
82
+
83
+#=================================================================
84
+
85
+&Getopts("v") || &usage;
86
+
87
+$verbose = $opt_v;
88
+
89
+
90
+$infile = shift(@ARGV);
91
+if ($infile)
92
+{
93
+    open(INFILE, $infile) || die "$program: Cannot read from $infile\n";
94
+    $handle = "INFILE";
95
+}
96
+else
97
+{
98
+    $handle = "STDIN";
99
+}
100
+
101
+
102
+$outfile = shift(@ARGV);
103
+if ($outfile)
104
+{
105
+    open(OUTFILE, ">$outfile") || die "$program: Cannot write to $outfile\n";
106
+    select(OUTFILE);
107
+}
108
+
109
+#  This reads the header comments and detects the presence of the marker.
110
+$have_marker = 0;
111
+
112
+undef $dict_name;
113
+undef $dict_line;
114
+
115
+&read_comments;
116
+&put_comments;
117
+
118
+if ($have_marker)
119
+{
120
+    $verbose && print STDERR "$program: Warning - already converted\n";
121
+
122
+    while(<$handle>)		# pass the file through unchanged.
123
+    {
124
+	print;
125
+    }
126
+}
127
+else
128
+{
129
+    $seen_trailer = 0;
130
+
131
+    while(<$handle>)		# massage the file
132
+    {
133
+	if ($dict_line)
134
+	{
135
+	    next if (/$dict_line/o);		# drop the old begin line
136
+	    $seen_trailer = 1 if (/^%%Trailer/);
137
+	    next if ($seen_trailer and /^end/);	# drop the old end line
138
+	}
139
+
140
+	print;
141
+
142
+	if (/^%%Page:/)
143
+	{
144
+	    print "$dict_name begin\n";	# add at the start of the page
145
+	}
146
+	elsif (/^showpage/)
147
+	{
148
+	    print "end\n";			# add at the end of the page
149
+	}
150
+	elsif (/^%%BeginResource: procset (\S+)/)
151
+	{
152
+	    $dict_name = $1;
153
+	    $dict_line = "^$dict_name begin";
154
+	}
155
+	elsif (/^%%BeginProcSet: (\S+)/)	# for older document versions
156
+	{
157
+	    $dict_name = $1;
158
+	    $dict_line = "^$dict_name begin";
159
+	}
160
+	elsif (/^%%EndProlog:/)
161
+	{
162
+	    unless ($dict_line) 
163
+	    {
164
+		$verbose && 
165
+		    print STDERR "$program: Warning - unrecognised document structure\n";
166
+	    }
167
+	}
168
+    }
169
+}
170
+
171
+exit 0;
172
+
173
+#=================================================================
174
+
175
+
176
+#  This reads all of the header comments into an array which we can write
177
+#  out again later.  In addition we detect the presence of the marker comment.
178
+
179
+sub read_comments
180
+{
181
+    @headers = ();
182
+
183
+    while (<$handle>)
184
+    {				# without chopping
185
+	push(@headers, $_);
186
+	if (/^%LOCALGhostviewPatched/)
187
+	{
188
+	    $have_marker = 1;
189
+	}
190
+	last if /^%%EndComments/;
191
+    }
192
+}
193
+
194
+
195
+
196
+sub put_comments 
197
+{
198
+    foreach $h (@headers)
199
+    {
200
+	if (!$have_marker and ($h =~ /^%%EndComments/))
201
+	{
202
+	    print "%LOCALGhostviewPatched\n";
203
+	}
204
+	print $h;		# contains the newline
205
+    }
206
+}

+ 13
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c View File

@@ -0,0 +1,13 @@
1
+#!/bin/sh
2
+# $Id: font2c 8107 2007-07-05 19:04:29Z till $
3
+
4
+# This definition is changed on install to match the
5
+# executable name set in the makefile
6
+GS_EXECUTABLE=gs
7
+gs="`dirname $0`/$GS_EXECUTABLE"
8
+if test ! -x "$gs"; then
9
+	gs="$GS_EXECUTABLE"
10
+fi
11
+GS_EXECUTABLE="$gs"
12
+
13
+exec "$GS_EXECUTABLE" -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps "$@"

+ 5
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.bat View File

@@ -0,0 +1,5 @@
1
+@echo off
2
+@rem $Id: font2c.bat 6300 2005-12-28 19:56:24Z giles $
3
+
4
+call gssetgs.bat
5
+%GSC% -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps %1 %2 %3 %4 %5 %6 %7 %8 %9

+ 7
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.cmd View File

@@ -0,0 +1,7 @@
1
+/* $Id: font2c.cmd 6300 2005-12-28 19:56:24Z giles $ */
2
+/*
3
+ * This file is maintained by a user: if you have any questions about it,
4
+ * please contact Mark Hale (mark.hale@physics.org).
5
+ */
6
+
7
+@gsos2 -q -dNODISPLAY -dWRITESYSTEMDICT -- font2c.ps %1 %2 %3 %4 %5 %6 %7 %8 %9

+ 675
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2c.ps View File

@@ -0,0 +1,675 @@
1
+%    Copyright (C) 1992, 1993, 1994, 1995, 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: font2c.ps 6300 2005-12-28 19:56:24Z giles $
17
+% font2c.ps
18
+% Write out a PostScript Type 0 or Type 1 font as C code
19
+% that can be linked with the interpreter.
20
+% This even works on protected fonts, if you use the -dWRITESYSTEMDICT
21
+% switch in the command line.  The code is reentrant and location-
22
+% independent and has no external references, so it can be put into
23
+% a sharable library even on VMS.
24
+
25
+/font2cdict 100 dict dup begin
26
+
27
+% Define the maximum string length that all compilers will accept.
28
+% This must be approximately
29
+%	min(max line length, max string literal length) / 4 - 5.
30
+
31
+/max_wcs 50 def
32
+
33
+% Define a temporary file for writing out procedures.
34
+/wtempname (_.tmp) def
35
+
36
+% ------ Protection utilities ------ %
37
+
38
+% Protection values are represented by a mask:
39
+/a_noaccess 0 def
40
+/a_executeonly 1 def
41
+/a_readonly 3 def
42
+/a_all 7 def
43
+/prot_names
44
+ [ (0) (a_execute) null (a_readonly) null null null (a_all)
45
+ ] def
46
+/prot_opers
47
+ [ {noaccess} {executeonly} {} {readonly} {} {} {} {}
48
+ ] def
49
+
50
+% Get the protection of an object.
51
+   /getpa
52
+    { dup wcheck
53
+       { pop a_all }
54
+       {	% Check for executeonly or noaccess objects in protected.
55
+         dup protected exch known
56
+	  { protected exch get }
57
+	  { pop a_readonly }
58
+	 ifelse
59
+       }
60
+      ifelse
61
+    } bind def
62
+
63
+% Get the protection appropriate for (all the) values in a dictionary.
64
+   /getva
65
+    { a_noaccess exch
66
+       { exch pop
67
+         dup type dup /stringtype eq 1 index /arraytype eq or
68
+	 exch /packedarraytype eq or
69
+	  { getpa a_readonly and or }
70
+	  { pop pop a_all exit }
71
+	 ifelse
72
+       }
73
+      forall
74
+    } bind def
75
+
76
+% Keep track of executeonly and noaccess objects,
77
+% but don't let the protection actually take effect.
78
+.currentglobal
79
+false .setglobal	% so protected can reference local objs
80
+/protected		% do first so // will work
81
+  systemdict wcheck { 1500 dict } { 1 dict } ifelse
82
+def
83
+systemdict wcheck not
84
+ { (Warning: you will not be able to convert protected fonts.\n) print
85
+   (If you need to convert a protected font, please\n) print
86
+   (restart the program and specify the -dWRITESYSTEMDICT switch.\n) print
87
+   flush
88
+   (%end) .skipeof
89
+ }
90
+if
91
+userdict begin
92
+  /executeonly
93
+   { dup //protected exch //a_executeonly put readonly
94
+   } bind def
95
+  /noaccess
96
+   { dup //protected exch //a_noaccess put readonly
97
+   } bind def
98
+end
99
+true .setglobal
100
+systemdict begin
101
+  /executeonly
102
+   { userdict /executeonly get exec
103
+   } bind odef
104
+  /noaccess
105
+   { userdict /noaccess get exec
106
+   } bind odef
107
+end
108
+%end
109
+.setglobal
110
+
111
+% ------ Output utilities ------ %
112
+
113
+% By convention, the output file is named cfile.
114
+
115
+% Define some utilities for writing the output file.
116
+   /wtstring 100 string def
117
+   /wb {cfile exch write} bind def
118
+   /ws {cfile exch writestring} bind def
119
+   /wl {ws (\n) ws} bind def
120
+   /wt {wtstring cvs ws} bind def
121
+
122
+% Write a C string.  Some compilers have unreasonably small limits on
123
+% the length of a string literal or the length of a line, so every place
124
+% that uses wcs must either know that the string is short,
125
+% or be prepared to use wcca instead.
126
+   /wbx
127
+    { 8#1000 add 8 (0000) cvrs dup 0 (\\) 0 get put ws
128
+    } bind def
129
+   /wcst
130
+    [
131
+      32 { /wbx load } repeat
132
+      95 { /wb load } repeat
133
+      129 { /wbx load } repeat
134
+    ] def
135
+   ("\\) { wcst exch { (\\) ws wb } put } forall
136
+   /wcs
137
+    { (") ws { dup wcst exch get exec } forall (") ws
138
+    } bind def
139
+   /can_wcs	% Test if can use wcs
140
+    { length max_wcs le
141
+    } bind def
142
+   /wncs	% name -> C string
143
+    { wtstring cvs wcs
144
+    } bind def
145
+% Write a C string as an array of character values.
146
+% We only need this because of line and literal length limitations.
147
+   /wca		% <string> <prefix> <suffix> wca -
148
+    { 0 4 -2 roll exch
149
+       {	% Stack: suffix n prefix char
150
+	 exch ws
151
+	 exch dup 19 ge { () wl pop 0 } if 1 add
152
+	 exch dup 32 ge 1 index 126 le and
153
+	  { 39 wb dup 39 eq 1 index 92 eq or { 92 wb } if wb 39 wb }
154
+	  { wt }
155
+	 ifelse (,)
156
+       } forall
157
+      pop pop ws
158
+    } bind def
159
+   /wcca	% <string> wcca -
160
+    { ({\n) (}) wca
161
+    } bind def
162
+
163
+% Write object protection attributes.  Note that dictionaries and arrays are
164
+% the only objects that can be writable.
165
+   /wpa
166
+    { dup xcheck { (a_executable|) ws } if
167
+      dup type dup /dicttype eq exch /arraytype eq or
168
+       { getpa }
169
+       { getpa a_readonly and }
170
+      ifelse prot_names exch get ws
171
+    } bind def
172
+   /wva
173
+    { getva prot_names exch get ws
174
+    } bind def
175
+
176
+% ------ Object writing ------ %
177
+
178
+   /wnstring 128 string def
179
+
180
+% Convert an object to a string to be scanned at a later time.
181
+   /cvos		% <obj> cvos <string>
182
+    {		% We'd like to use == and write directly to a string,
183
+		% but we can't do the former because of operators,
184
+		% and we can't do the latter because we can't predict
185
+		% how long the string would have to be....
186
+	 wtempname (w) file dup 3 -1 roll wproc closefile
187
+	 wtempname status pop pop pop exch pop string
188
+	 wtempname (r) file dup 3 -1 roll readstring pop exch closefile
189
+    } bind def
190
+
191
+% Write a string/name or null as an element of a string/name/null array.
192
+% Convert any other kind of value to a token to be read back in.
193
+   /wsn
194
+    { dup null eq
195
+       { pop (\t255,255,) wl
196
+       }
197
+       { dup type /nametype eq { wnstring cvs } if
198
+	 dup type /stringtype ne { cvos (255,) ws } if
199
+	 dup length 256 idiv wt (,) ws
200
+	 dup length 256 mod wt
201
+	 (,) (,\n) wca
202
+       }
203
+      ifelse
204
+    } bind def
205
+% Write a packed string/name/null array.
206
+   /wsna	% <name> <(string|name|null)*> wsna -
207
+    { (\tstatic const unsigned char ) ws exch wt ([] = {) wl
208
+      { wsn } forall
209
+      (\t0\n};) wl
210
+    } bind def
211
+
212
+% Write a number or an array of numbers, as refs.
213
+/isnumber
214
+ { type dup /integertype eq exch /realtype eq or
215
+ } bind def
216
+/wnums
217
+ { dup isnumber
218
+    { (real_v\() ws wt (\),) ws }
219
+    { { wnums } forall }
220
+   ifelse
221
+ } bind def
222
+
223
+% Test whether a procedure or unusual array can be written (printed).
224
+/iswx 4 dict dup begin
225
+  /arraytype { { iswproc } isall } def
226
+  /nametype { pop true } def
227
+  /operatortype { pop true } def	% assume it has been bound in
228
+  /packedarraytype /arraytype load def
229
+end def
230
+/iswnx 6 dict dup begin
231
+  /arraytype { { iswproc } isall } def
232
+  /integertype { pop true } def
233
+  /nametype { pop true } def
234
+  /realtype { pop true } def
235
+  /stringtype { pop true } def
236
+  /packedarraytype /arraytype load def
237
+end def
238
+/iswproc	% <obj> iswproc <bool>
239
+ { dup xcheck { iswx } { iswnx } ifelse
240
+   1 index type .knownget { exec } { pop false } ifelse
241
+ } bind def
242
+
243
+% Write a printable procedure (one for which iswproc returns true).
244
+/wproca 3 dict dup begin
245
+  /arraytype
246
+   { 1 index ({) writestring
247
+      { 1 index ( ) writestring 1 index exch wproc } forall
248
+     (}) writestring
249
+   } bind def
250
+  /packedarraytype /arraytype load def
251
+  /operatortype { .writecvs } bind def	% assume binding would work
252
+end def
253
+/wproc		% <file> <proc> wproc -
254
+ { dup type wproca exch .knownget { exec } { write==only } ifelse
255
+ } bind def
256
+
257
+% Write a named object.  Return true if this was possible.
258
+% Legal types are: boolean, integer, name, real, string,
259
+% array of (integer, integer+real, name, null+string),
260
+% and certain procedures and other arrays (see iswproc above).
261
+% All other objects are either handled specially or ignored.
262
+   /isall	% <array> <proc> isall <bool>
263
+    { true 3 -1 roll
264
+       { 2 index exec not { pop false exit } if }
265
+      forall exch pop
266
+    } bind def
267
+   /wott 8 dict dup begin
268
+      /arraytype
269
+       { woatt
270
+          { aload pop 2 index 2 index exec
271
+	     { exch pop exec exit }
272
+	     { pop pop }
273
+	    ifelse
274
+	  }
275
+	 forall
276
+       } bind def
277
+      /booleantype
278
+       { { (\tmake_true\(&) } { (\tmake_false\(&) } ifelse ws
279
+         wt (\);) wl true
280
+       } bind def
281
+      /integertype
282
+       { (\tmake_int\(&) ws exch wt (, ) ws
283
+         wt (\);) wl true
284
+       } bind def
285
+      /nametype
286
+       { (\tcode = (*pprocs->name_create)\(i_ctx_p, &) ws exch wt
287
+         (, ) ws wnstring cvs wcs	% OK, names are short
288
+	 (\);) wl
289
+	 (\tif ( code < 0 ) return code;) wl
290
+	 true
291
+       } bind def
292
+      /packedarraytype
293
+	/arraytype load def
294
+      /realtype
295
+       { (\tmake_real\(&) ws exch wt (, (float)) ws
296
+         wt (\);) wl true
297
+       } bind def
298
+      /stringtype
299
+       { ({\tstatic const unsigned char s_[] = ) ws
300
+         dup dup can_wcs { wcs } { wcca } ifelse
301
+	 (;) wl
302
+	 (\tmake_const_string\(&) ws exch wt
303
+	 (, a_readonly, ) ws length wt (, (const byte *)s_\);) wl
304
+	 (}) wl true
305
+       } bind def
306
+   end def
307
+% Write some other kind of object, if known.
308
+   /wother
309
+    { dup otherobjs exch known
310
+       { otherobjs exch get (\t) ws exch wt ( = ) ws wt (;) wl true }
311
+       { pop pop false }
312
+      ifelse
313
+    } bind def
314
+% Top-level procedure.
315
+   /wo		% name obj -> OK
316
+    { dup type wott exch .knownget { exec } { wother } ifelse
317
+    } bind def
318
+
319
+% Write an array (called by wo).
320
+   /wap		% <name> <array> wap -
321
+    { dup xcheck not 1 index wcheck not and 1 index rcheck and
322
+       { pop pop }
323
+       { (\tr_set_attrs\(&) ws exch wt (, ) ws wpa (\);) wl }
324
+      ifelse
325
+    } bind def
326
+   /wnuma {	% <name> <array> <element_C_type> <<type>_v> wnuma -
327
+      ({\tstatic const ref_\() ws exch ws (\) a_[] = {) wl exch
328
+		% Stack: name type_v array
329
+      dup length 0 eq {
330
+	(\t) ws 1 index ws (\(0\)) wl
331
+      } {
332
+	dup {
333
+	  (\t) ws 2 index ws (\() ws wt (\),) wl
334
+	} forall
335
+      } ifelse exch pop
336
+		% Stack: name array
337
+      (\t};) wl
338
+      dup wcheck {
339
+	(\tcode = (*pprocs->scalar_array_create)\(i_ctx_p, &) ws exch wt
340
+	(, (const ref *)a_, ) ws dup length wt
341
+	(, ) ws wpa (\);) wl
342
+	(\tif ( code < 0 ) return code;) wl
343
+      } {
344
+	(\tmake_const_array\(&) ws exch wt
345
+	(, avm_foreign|) ws dup wpa (, ) ws length wt
346
+	(, (const ref *)a_\);) wl
347
+      } ifelse
348
+      (}) wl
349
+    } bind def
350
+   /woatt [
351
+	% Integers
352
+     { { { type /integertype eq } isall }
353
+       { (long) (integer_v) wnuma true }
354
+     }
355
+	% Integers + reals
356
+     { { { type dup /integertype eq exch /realtype eq or } isall }
357
+       { (float) (real_v) wnuma true }
358
+     }
359
+	% Strings + nulls
360
+     { { { type dup /nulltype eq exch /stringtype eq or } isall }
361
+       { ({) ws dup (sa_) exch wsna
362
+	 (\tcode = (*pprocs->string_array_create)\(i_ctx_p, &) ws exch wt
363
+	 (, \(const char *\)sa_, ) ws dup length wt (, ) ws wpa (\);) wl
364
+	 (\tif ( code < 0 ) return code;) wl
365
+	 (}) wl true
366
+       }
367
+     }
368
+	% Names
369
+     { { { type /nametype eq } isall }
370
+       { ({) ws dup (na_) exch wsna
371
+	 (\tcode = (*pprocs->name_array_create)\(i_ctx_p, &) ws 1 index wt
372
+	 (, \(const char *\)na_, ) ws dup length wt (\);) wl
373
+	 (\tif ( code < 0 ) return code;) wl
374
+	 wap (}) wl true
375
+       }
376
+     }
377
+	% Procedure
378
+     { { iswproc }
379
+       { dup cvos
380
+		% Stack: name proc string
381
+	 ({\tstatic const unsigned char s_[] = ) ws
382
+         dup dup can_wcs { wcs } { wcca } ifelse
383
+	 (;) wl
384
+	 (\tcode = (*pprocs->ref_from_string)\(i_ctx_p, &) ws 2 index wt
385
+	 (, \(const char *\)s_, ) ws length wt (\);) wl
386
+	 (\tif ( code < 0 ) return code;) wl
387
+	 wap (}) wl true
388
+	 wtempname deletefile
389
+       }
390
+     }
391
+	% Default
392
+     { { pop true }
393
+       { wother }
394
+     }
395
+   ] def
396
+
397
+% Write a named dictionary.  We assume the ref is already declared.
398
+   /wd		% <name> <dict> <extra> wd -
399
+    { 3 1 roll
400
+      ({) ws
401
+      (\tref v_[) ws dup length wt (];) wl
402
+      dup [ exch
403
+       { counttomark 2 sub wtstring cvs
404
+         (v_[) exch concatstrings (]) concatstrings exch wo not
405
+          { (Skipping ) print ==only (....\n) print }
406
+	 if
407
+       } forall
408
+      ]
409
+		% Stack: array of keys (names)
410
+      ({) ws dup (str_keys_) exch wsna
411
+      (\tstatic const cfont_dict_keys keys_ =) wl
412
+      (\t { 0, 0, ) ws length wt (, ) ws 3 -1 roll wt (, ) ws
413
+      dup wpa (, ) ws dup wva ( };) wl pop
414
+      (\tcode = \(*pprocs->ref_dict_create\)\(i_ctx_p, &) ws wt
415
+      (, &keys_, \(const char *\)str_keys_, v_\);) wl
416
+      (\tif ( code < 0 ) return code;) wl
417
+      (}) wl
418
+      (}) wl
419
+    } bind def
420
+
421
+% Write character dictionary keys.
422
+% We save a lot of space by abbreviating keys which appear in
423
+% StandardEncoding or ISOLatin1Encoding.
424
+% Writes code to declare and initialize enc_keys_, str_keys, and keys_.
425
+/wcdkeys	% <dict> wcdkeys -
426
+ {	% Write keys present in StandardEncoding or ISOLatin1Encoding,
427
+	% pushing other keys on the o-stack.
428
+   (static const charindex enc_keys_[] = {) wl
429
+   dup [ exch 0 exch
430
+    { pop decoding 1 index known
431
+       { decoding exch get ({) ws dup -8 bitshift wt
432
+	 (,) ws 255 and wt (}, ) ws
433
+	 1 add dup 5 mod 0 eq { (\n) ws } if
434
+       }
435
+       { exch }
436
+      ifelse
437
+    }
438
+   forall pop
439
+   ]
440
+   ({0,0}\n};) wl
441
+	% Write other keys.
442
+   (str_keys_) exch wsna
443
+	% Write the declaration for keys_.
444
+   (static const cfont_dict_keys keys_ = {) wl
445
+   (\tenc_keys_, countof\(enc_keys_\) - 1,) wl
446
+   (\t) ws dup length wt ( - \(countof\(enc_keys_\) - 1\), 0, ) ws
447
+   dup wpa (, ) ws wva () wl
448
+   (};) wl
449
+ } bind def
450
+
451
+% Enumerate character dictionary values in the same order that
452
+% the keys appear in enc_keys_ and str_keys_.
453
+% <proc> is called with each value in turn.
454
+/cdforall	% <dict> <proc> cdforall -
455
+ { 2 copy
456
+    { decoding 3 index known
457
+       { 3 -1 roll pop exec }
458
+       { pop pop pop }
459
+      ifelse
460
+    }
461
+   /exec cvx 3 packedarray cvx
462
+   /forall cvx
463
+   5 -2 roll
464
+    { decoding 3 index known
465
+       { pop pop pop }
466
+       { 3 -1 roll pop exec }
467
+      ifelse
468
+    }
469
+   /exec cvx 3 packedarray cvx
470
+   /forall cvx
471
+   6 packedarray cvx exec
472
+ } bind def
473
+
474
+% ------ Writers for special objects ------ %
475
+
476
+/writespecial 10 dict dup begin
477
+
478
+   /FontInfo { 0 wd } def
479
+
480
+   /Private { 0 wd } def
481
+
482
+   /CharStrings
483
+    { ({) wl
484
+      dup wcdkeys
485
+      (static const unsigned char values_[] = {) wl
486
+       { wsn } cdforall
487
+      (\t0\n};) wl
488
+      (\tcode = \(*pprocs->string_dict_create\)\(i_ctx_p, &) ws wt
489
+      (, &keys_, (const char *)str_keys_, \(const char *\)values_\);) wl
490
+      (\tif ( code < 0 ) return code;) wl
491
+      (}) wl
492
+    } bind def
493
+
494
+   /Metrics
495
+    { ({) wl
496
+      dup wcdkeys
497
+      (static const ref_(float) values_[] = {) wl
498
+      dup { (\t) ws wnums () wl } cdforall
499
+      (\t0\n};) wl
500
+      (static const unsigned char lengths_[] = {) wl
501
+       { (\t) ws dup isnumber
502
+	  { pop 0 }
503
+	  { length 1 add }
504
+	 ifelse wt (,) wl
505
+       } cdforall
506
+      (\t0\n};) wl
507
+      (\tcode = \(*pprocs->num_dict_create\)\(i_ctx_p, &) ws wt
508
+      (, &keys_, str_keys_, (const ref *)values_, lengths_\);) wl
509
+      (\tif ( code < 0 ) return code;) wl
510
+      (}) wl
511
+    } bind def
512
+
513
+   /Metrics2 /Metrics load def
514
+
515
+   /FDepVector pop	% (converted to a list of font names)
516
+
517
+end def
518
+
519
+% ------ The main program ------ %
520
+
521
+% Construct an inverse dictionary of encodings.
522
+[ /StandardEncoding /ISOLatin1Encoding
523
+  /SymbolEncoding /DingbatsEncoding
524
+  /KanjiSubEncoding
525
+]
526
+dup length dict begin
527
+ { mark exch dup { .findencoding exch def } stopped cleartomark
528
+ } forall
529
+currentdict end /encodingnames exch def
530
+
531
+% Invert the StandardEncoding and ISOLatin1Encoding vectors.
532
+512 dict begin
533
+  0 1 255 { dup ISOLatin1Encoding exch get exch 256 add def } for
534
+  0 1 255 { dup StandardEncoding exch get exch def } for
535
+currentdict end /decoding exch def
536
+
537
+/writefont		% cfilename procname -> [writes the current font]
538
+ { (gsf_) exch concatstrings
539
+     /fontprocname exch def
540
+   /cfname exch def
541
+   /cfile cfname (w) file def
542
+
543
+% Remove unwanted keys from the font.
544
+   currentfont dup length dict begin { def } forall
545
+    { /FID /MIDVector /CurMID } { currentdict exch undef } forall
546
+   /Font currentdict end def
547
+
548
+% Replace the FDepVector with a list of font names.
549
+   Font /FDepVector .knownget
550
+    { [ exch { /FontName get } forall ]
551
+      Font /FDepVector 3 -1 roll put
552
+    }
553
+   if
554
+
555
+% Find all the special objects we know about.
556
+% wo uses this to write out references to otherwise intractable objects.
557
+   /otherobjs writespecial length dict dup begin
558
+     writespecial
559
+      { pop Font 1 index .knownget { exch def } { pop } ifelse
560
+      }
561
+     forall
562
+   end def
563
+
564
+% Define a dummy FontInfo, in case the font doesn't have one.
565
+   /FontInfo 0 dict def
566
+
567
+% Write out the boilerplate.
568
+   Font begin
569
+   (/****************************************************************) wl
570
+   (   Portions of this file are subject to the following notice(s):) wl
571
+   systemdict /copyright get wl
572
+   FontInfo /Notice .knownget
573
+    { (----------------------------------------------------------------) wl wl
574
+    } if
575
+   (****************************************************************/) wl
576
+   () wl
577
+   (/* ) ws cfname ws ( */) wl
578
+   (/* This file was created by the ) ws product ws ( font2c utility. */) wl
579
+   () wl
580
+   (#undef DEBUG) wl
581
+   (#include "ccfont.h") wl
582
+   () wl
583
+
584
+% Write the procedure prologue.
585
+   (#ifdef __PROTOTYPES__) wl
586
+   (ccfont_proc\() ws fontprocname ws (\);) wl
587
+   (int) wl
588
+   fontprocname ws ((i_ctx_t *i_ctx_p, const cfont_procs *pprocs, ref *pfont)) wl
589
+   (#else) wl
590
+   (int) wl
591
+   fontprocname ws ((i_ctx_p, pprocs, pfont) i_ctx_t *i_ctx_p; const cfont_procs *pprocs; ref *pfont;) wl
592
+   (#endif) wl
593
+   ({\tint code;) wl
594
+   (\tref Font;) wl
595
+   otherobjs
596
+    { exch pop (\tref ) ws wt (;) wl }
597
+   forall
598
+
599
+% Write out the special objects.
600
+   otherobjs
601
+    { exch writespecial 2 index get exec
602
+    }
603
+   forall
604
+
605
+% Write out the main font dictionary.
606
+% If possible, substitute the encoding name for the encoding;
607
+% PostScript code will fix this up.
608
+    { /Encoding /PrefEnc }
609
+    { Font 1 index .knownget
610
+       { encodingnames exch .knownget { def } { pop } ifelse }
611
+       { pop }
612
+      ifelse
613
+    }
614
+   forall
615
+   (Font) Font FontType 0 eq { 5 } { 1 } ifelse wd
616
+
617
+% Finish the procedural initialization code.
618
+   (\t*pfont = Font;) wl
619
+   (\treturn 0;) wl
620
+   (}) wl
621
+   end				% Font
622
+
623
+   cfile closefile
624
+
625
+ } bind def
626
+
627
+end def			% font2cdict
628
+
629
+% Compute the procedure name from the font name.
630
+% Replace all non-alphanumeric characters with '_'.
631
+/makefontprocnamemap 256 string
632
+   0 1 255 { 2 copy 95 put pop } for
633
+   (0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz)
634
+    { 2 copy dup put pop } forall
635
+readonly def
636
+/makefontprocname	% <fontname> makefontprocname <procnamestring>
637
+ { dup length string cvs
638
+   dup length 1 sub -1 0
639
+    {		% Stack: string index
640
+      2 copy 2 copy get //makefontprocnamemap exch get put pop
641
+    }
642
+   for 
643
+ } def
644
+
645
+/writefont { font2cdict begin writefont end } def
646
+
647
+% If the program was invoked from the command line, run it now.
648
+[ shellarguments
649
+ { counttomark dup 2 eq exch 3 eq or
650
+    { counttomark -1 roll cvn
651
+      (Converting ) print dup =only ( font.\n) print flush
652
+		% Ensure that we get a clean copy of the font from the
653
+		% file system.
654
+      2 {	% do both local and global
655
+	currentglobal not setglobal
656
+	dup undefinefont
657
+      } repeat
658
+      findfont setfont
659
+      (FontName is ) print currentfont /FontName get ==only (.\n) print flush
660
+      counttomark 1 eq
661
+       {	% Construct the procedure name from the file name.
662
+         currentfont /FontName get makefontprocname
663
+       }
664
+      if
665
+      writefont
666
+      (Done.\n) print flush
667
+    }
668
+    { cleartomark
669
+      (Usage: font2c fontname cfilename.c [shortname]\n) print
670
+      ( e.g.: font2c Courier cour.c\n) print flush
671
+      mark
672
+    }
673
+   ifelse
674
+ }
675
+if pop

+ 603
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/font2pcl.ps View File

@@ -0,0 +1,603 @@
1
+%    Copyright (C) 1993, 1994, 1995, 1997 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: font2pcl.ps 6300 2005-12-28 19:56:24Z giles $
17
+% font2pcl.ps
18
+% Write out a font as a PCL bitmap font.
19
+
20
+/pcldict 60 dict def
21
+
22
+% Write out the current font as a PCL bitmap font.
23
+% The current transformation matrix defines the font size and orientation.
24
+
25
+/WriteResolution? false def	% true=use "resolution bound font" format,
26
+				% false=use older format
27
+
28
+/LJ4 false def			% true=use LJ4 Typeface code
29
+				% false=use LJIIP/IID/IIIx Typeface code
30
+
31
+pcldict begin		% internal procedures
32
+
33
+/findstring	% <string> <substring> findstring <bool>
34
+ { search { pop pop pop true } { pop false } ifelse
35
+ } def
36
+
37
+	% Determine which set of keywords is present in a string.
38
+	% The last keyword set must be empty.
39
+
40
+/keysearch	% <string> <array of arrays of keywords> keysearch <index>
41
+ { 0 1 2 index length 1 sub
42
+    { 2 copy get true exch
43
+       {	% Stack: <string> <a.a.k.> <index> <bool> <keyword>
44
+         4 index exch findstring and
45
+       }
46
+      forall
47
+       { 0 exch getinterval exit
48
+       }
49
+      if pop
50
+    }
51
+   for
52
+   exch pop length	% invalid index if missing
53
+ } def
54
+
55
+	% Determine the device height of a string in quarter-dots.
56
+
57
+/charheight		% <string> charheight <int>
58
+ { gsave newpath 0 0 moveto false charpath
59
+   pathbbox exch pop exch sub exch pop 0 exch grestore
60
+   dtransform add abs 4 mul cvi
61
+ } def
62
+
63
+	% Compute an integer version of the transformed FontBBox.
64
+
65
+/inflate		% <num> inflate <num>
66
+ { dup 0 gt { ceiling } { floor } ifelse
67
+ } def
68
+/ixbbox			% - ixbbox <llx> <lly> <urx> <ury>
69
+ { /FontBBox load aload pop		% might be executable or literal
70
+   4 2 roll transform exch truncate cvi exch truncate cvi
71
+   4 2 roll transform exch inflate cvi exch inflate cvi
72
+ } def
73
+
74
+	% Determine the original font of a possibly transformed font.
75
+	% Since some badly behaved PostScript files construct transformed
76
+	% fonts "by hand", we can't just rely on the OrigFont pointers.
77
+	% Instead, if a font with the given name exists, and if its
78
+	% entries for FontType and UniqueID match those of the font we
79
+	% obtain by following the OrigFont chain, we use that font.
80
+
81
+/origfont
82
+ {  { dup /OrigFont known not { exit } if /OrigFont get } loop
83
+   FontDirectory 1 index /FontName get .knownget
84
+    {		% Stack: origfont namedfont
85
+      1 index /FontType get 1 index /FontType get eq
86
+       { 1 index /UniqueID .knownget
87
+	  { 1 index /UniqueID .knownget
88
+	     { eq { exch } if }
89
+	     { pop }
90
+            ifelse
91
+	  }
92
+	 if
93
+       }
94
+      if pop
95
+    }
96
+   if
97
+ } def
98
+
99
+
100
+	% Determine the bounding box of the current device's image.
101
+	% Free variables: row, zerow.
102
+
103
+/devbbox		% <rw> <rh> devbbox <ymin> <ymax1> <xmin> <xmax1>
104
+ {		% Find top and bottom whitespace.
105
+   dup
106
+    { dup 0 eq { exit } if 1 sub
107
+      dup currentdevice exch row copyscanlines
108
+      zerow ne { 1 add exit } if
109
+    }
110
+   loop		% ymax1
111
+   0
112
+    { 2 copy eq { exit } if
113
+      dup currentdevice exch row copyscanlines
114
+      zerow ne { exit } if
115
+      1 add
116
+    }
117
+   loop		% ymin
118
+   exch
119
+		% Find left and right whitespace.
120
+   3 index 0
121
+		% Stack: rw rh ymin ymax1 xmin xmax1
122
+   3 index 1 4 index 1 sub
123
+    { currentdevice exch row copyscanlines .findzeros
124
+      exch 4 1 roll .max 3 1 roll .min exch
125
+    }
126
+   for		% xmin xmax1
127
+		% Special check: xmin > xmax1 if height = 0
128
+   2 copy gt { exch pop dup } if
129
+   6 -2 roll pop pop
130
+
131
+ } def
132
+
133
+	% Write values on outfile.
134
+
135
+ /w1 { 255 and outfile exch write } def
136
+ /w2 { dup -8 bitshift w1 w1 } def
137
+ /wbyte			% <byte> <label> wbyte
138
+  { VDEBUG { print ( =byte= ) print dup == flush } { pop } ifelse w1
139
+  } def
140
+ /wword			% <word16> <label> wword
141
+  { VDEBUG { print ( =word= ) print dup == flush } { pop } ifelse w2
142
+  } def
143
+ /wdword		% <word32> <label> wdword
144
+  { VDEBUG { print ( =dword= ) print dup == flush } { pop } ifelse
145
+    dup -16 bitshift w2 w2
146
+  } def
147
+
148
+/style.posture.keys
149
+ [ { (Italic) } { (Oblique) }
150
+   { }
151
+ ] def
152
+/style.posture.values <010100> def
153
+
154
+/style.appearance.width.keys
155
+ [ { (Ultra) (Compressed) }
156
+   { (Extra) (Compressed) }
157
+   { (Extra) (Condensed) }
158
+   { (Extra) (Extended) }
159
+   { (Extra) (Expanded) }
160
+   { (Compressed) }
161
+   { (Condensed) }
162
+   { (Extended) }
163
+   { (Expanded) }
164
+   { }
165
+ ] def
166
+/style.appearance.width.values <04030207070201060600> def
167
+
168
+/width.type.keys
169
+ [ { (Ultra) (Compressed) }
170
+   { (Extra) (Compressed) }
171
+   { (Extra) (Condensed) }
172
+   { (Extra) (Expanded) }
173
+   { (Compressed) }
174
+   { (Condensed) }
175
+   { (Expanded) }
176
+   { }
177
+ ] def
178
+/width.type.values <fbfcfd03fdfe0200> def
179
+
180
+/stroke.weight.keys
181
+ [ { (Ultra) (Thin) }
182
+   { (Ultra) (Black) }
183
+   { (Extra) (Thin) }
184
+   { (Extra) (Light) }
185
+   { (Extra) (Bold) }
186
+   { (Extra) (Black) }
187
+   { (Demi) (Light) }
188
+   { (Demi) (Bold) }
189
+   { (Semi) (Light) }
190
+   { (Semi) (Bold) }
191
+   { (Thin) }
192
+   { (Light) }
193
+   { (Bold) }
194
+   { (Black) }
195
+   { }
196
+ ] def
197
+/stroke.weight.values <f907fafc0406fe02ff01fbfd030500> def
198
+
199
+/vendor.keys
200
+ [ { (Agfa) }
201
+   { (Bitstream) }
202
+   { (Linotype) }
203
+   { (Monotype) }
204
+   { (Adobe) }
205
+   { }
206
+ ] def
207
+/vendor.default.index 4 def		% might as well be Adobe
208
+/old.vendor.values <020406080a00> def
209
+/new.vendor.values <010203040500> def
210
+/vendor.initials (CBLMA\000) def
211
+
212
+currentdict readonly end pop		% pcldict
213
+
214
+
215
+% Convert and write a PCL font for the current font and transformation.
216
+
217
+% Write the font header.  We split this off only to avoid overflowing
218
+% the limit on the maximum size of a procedure.
219
+% Free variables: outfile uury u0y rw rh orientation uh ully
220
+/writefontheader
221
+ { outfile (\033\)s) writestring
222
+   outfile 64 WriteResolution? { 4 add } if
223
+     Copyright length add write==only
224
+   outfile (W) writestring
225
+   WriteResolution? { 20 68 } { 0 64 } ifelse
226
+     (Font Descriptor Size) wword
227
+     (Header Format) wbyte
228
+   1 (Font Type) wbyte
229
+   FullName style.posture.keys keysearch style.posture.values exch get
230
+   FullName style.appearance.width.keys keysearch
231
+     style.appearance.width.values exch get 4 mul add
232
+   PaintType 2 eq { 32 add } if
233
+     /style exch def
234
+   style -8 bitshift (Style MSB) wbyte
235
+   0 (Reserved) wbyte
236
+   /baseline uury 1 sub u0y sub def
237
+     baseline (Baseline Position) wword
238
+   rw (Cell Width) wword
239
+   rh (Cell Height) wword
240
+   orientation (Orientation) wbyte
241
+   FontInfo /isFixedPitch .knownget not { false } if
242
+    { 0 } { 1 } ifelse (Spacing) wbyte
243
+	% Use loop/exit to fake a multiple-exit block.
244
+    { Encoding StandardEncoding eq { 10 (J) exit } if
245
+      Encoding ISOLatin1Encoding eq { 11 (J) exit } if
246
+      Encoding SymbolEncoding eq { 19 (M) exit } if
247
+      Encoding DingbatsEncoding eq { 10 (L) exit } if
248
+%      (Warning: unknown Encoding, using ISOLatin1.\n) print flush
249
+      11 (J) exit
250
+    }
251
+   loop
252
+   0 get 64 sub exch 32 mul add (Symbol Set) wword
253
+   ( ) stringwidth pop 0 dtransform add abs 4 mul
254
+     /pitch exch def
255
+   pitch cvi (Pitch) wword
256
+   uh 4 mul (Height) wword			% Height
257
+   (x) charheight (x-Height) wword
258
+   FullName width.type.keys keysearch
259
+     width.type.values exch get (Width Type) wbyte
260
+   style 255 and (Style LSB) wbyte
261
+   FullName stroke.weight.keys keysearch
262
+     stroke.weight.values exch get (Stroke Weight) wbyte
263
+   FullName vendor.keys keysearch
264
+     dup vendor.initials exch get 0 eq
265
+      {		% No vendor in FullName, try Notice
266
+        pop Copyright vendor.keys keysearch
267
+	dup vendor.initials exch get 0 eq { pop vendor.default.index } if
268
+      }
269
+     if
270
+     /vendor.index exch def
271
+   0 (Typeface LSB) wbyte		% punt
272
+   0 (Typeface MSB) wbyte		% punt
273
+   0 (Serif Style) wbyte		% punt
274
+   2 (Quality) wbyte
275
+   0 (Placement) wbyte
276
+   gsave FontMatrix concat rot neg rotate
277
+   /ulwidth
278
+     FontInfo /UnderlineThickness .knownget
279
+      { 0 exch dtransform exch pop abs }
280
+      { resolution 100 div }
281
+     ifelse def
282
+   FontInfo /UnderlinePosition .knownget
283
+    { 0 exch transform exch pop negY ulwidth 2 div add }
284
+    { ully ulwidth add }
285
+   ifelse u0y sub
286
+   round cvi 1 .max 255 .min (Underline Position) wbyte
287
+   ulwidth round cvi 1 .max 255 .min (Underline Thickness) wbyte
288
+   grestore
289
+   uh 1.2 mul 4 mul cvi (Text Height) wword
290
+   (average lowercase character) dup stringwidth
291
+     pop 0 dtransform add abs
292
+     exch length div 4 mul cvi (Text Width) wword
293
+   0
294
+    { dup Encoding exch get /.notdef ne { exit } if
295
+      1 add
296
+    }
297
+   loop (First Code) wword
298
+   255
299
+    { dup Encoding exch get /.notdef ne { exit } if
300
+      1 sub
301
+    }
302
+   loop (Last Code) wword
303
+   pitch dup cvi sub 256 mul cvi (Pitch Extended) wbyte
304
+   0 (Height Extended) wbyte
305
+   0 (Cap Height) wword			% (default)
306
+   currentfont /UniqueID known { UniqueID } { 0 } ifelse
307
+     16#c1000000 add (Font Number (Adobe UniqueID)) wdword
308
+   FontName length 16 .max string
309
+     dup FontName exch cvs pop
310
+     outfile exch 0 16 getinterval writestring	% Font Name
311
+   WriteResolution?
312
+    { resolution dup (X Resolution) wword (Y Resolution) wword
313
+    }
314
+   if
315
+   outfile Copyright writestring	% Copyright
316
+ } def
317
+
318
+/writePCL		% <fontfile> <resolution> writePCL -
319
+ {
320
+   save
321
+   currentfont begin
322
+   pcldict begin
323
+   80 dict begin		% allow for recursion
324
+     /saved exch def
325
+     /resolution exch def
326
+     /outfile exch def
327
+   matrix currentmatrix dup 4 0 put dup 5 0 put setmatrix
328
+
329
+	% Supply some default values so we don't have to check later.
330
+
331
+   currentfont /FontInfo known not { /FontInfo 1 dict def } if
332
+   currentfont /FontName known not { /FontName () def } if
333
+   /Copyright   FontInfo /Notice .knownget not { () } if   def
334
+   /FullName
335
+     FontInfo /FullName .knownget not
336
+      { FontName dup length string cvs }
337
+     if def
338
+
339
+	% Determine the original font, and its relationship to this one.
340
+
341
+   /OrigFont currentfont origfont def
342
+   /OrigMatrix OrigFont /FontMatrix get def
343
+   /OrigMatrixInverse OrigMatrix matrix invertmatrix def
344
+   /ScaleMatrix matrix currentfont OrigFont ne
345
+    { FontMatrix exch OrigMatrixInverse exch concatmatrix
346
+    } if
347
+   def
348
+   /CurrentScaleMatrix
349
+     matrix currentmatrix
350
+     matrix defaultmatrix
351
+     dup 0 get 1 index 3 get mul 0 lt
352
+     1 index dup 1 get exch 2 get mul 0 gt or
353
+       /flipY exch def
354
+     dup invertmatrix
355
+     dup concatmatrix
356
+   def
357
+   /negY flipY { {neg} } { {} } ifelse def
358
+
359
+	% Print debugging information.
360
+
361
+   /CDEBUG where { pop } { /CDEBUG false def } ifelse
362
+   /VDEBUG where { pop } { /VDEBUG false def } ifelse
363
+   CDEBUG { /VDEBUG true def } if
364
+   DEBUG
365
+    { (currentmatrix: ) print matrix currentmatrix ==
366
+      (defaultmatrix: ) print matrix defaultmatrix ==
367
+      (flipY: ) print flipY ==
368
+      (scaling matrix: ) print CurrentScaleMatrix ==
369
+      (FontMatrix: ) print FontMatrix ==
370
+      (FontBBox: ) print /FontBBox load ==
371
+      currentfont OrigFont ne
372
+       { OrigFont /FontName .knownget { (orig FontName: ) print == } if
373
+         (orig FontMatrix: ) print OrigMatrix ==
374
+       } if
375
+      currentfont /ScaleMatrix .knownget { (ScaleMatrix: ) print == } if
376
+      gsave
377
+	FontMatrix concat
378
+	(combined matrix: ) print matrix currentmatrix ==
379
+      grestore
380
+      flush
381
+    } if
382
+
383
+	% Determine the orientation.
384
+
385
+   ScaleMatrix matrix currentmatrix dup concatmatrix
386
+   0 1 3
387
+    { 1 index 1 get 0 eq 2 index 2 get 0 eq and 2 index 0 get 0 gt and
388
+       { exit } if
389
+      pop -90 matrix rotate exch dup concatmatrix
390
+    }
391
+   for
392
+   dup type /integertype ne
393
+    { (Only rotations by multiples of 90 degrees are supported:\n) print
394
+      == flush
395
+      saved end end end restore stop
396
+    }
397
+   if
398
+   /orientation exch def
399
+   /rot orientation 90 mul def
400
+   DEBUG { (orientation: ) print orientation == flush } if
401
+
402
+   dup dup 0 get exch 3 get negY sub abs 0.5 ge
403
+    { (Only identical scaling in X and Y is supported:\n) print
404
+      exch flipY 3 array astore ==
405
+      currentdevice .devicename ==
406
+      matrix defaultmatrix == flush
407
+      saved end end end restore stop
408
+    }
409
+   if pop
410
+
411
+	% Determine the font metrics, in the PCL character coordinate system,
412
+	% which has +Y going towards the top of the page.
413
+
414
+   gsave
415
+   FontMatrix concat
416
+     0 0 transform
417
+     negY round cvi /r0y exch def
418
+     round cvi /r0x exch def
419
+   ixbbox
420
+     negY /rury exch def  /rurx exch def
421
+     negY /rlly exch def  /rllx exch def
422
+     /rminx rllx rurx .min def
423
+     /rminy rlly negY rury negY .min def
424
+     /rw rurx rllx sub abs def
425
+     /rh rury rlly sub abs def
426
+   gsave rot neg rotate
427
+     0 0 transform
428
+     negY round cvi /u0y exch def
429
+     round cvi /u0x exch def
430
+   ixbbox
431
+     negY /uury exch def   /uurx exch def
432
+     negY /ully exch def   /ullx exch def
433
+     /uw uurx ullx sub def
434
+     /uh uury ully sub def
435
+   grestore
436
+   DEBUG 
437
+    { (rmatrix: ) print matrix currentmatrix ==
438
+      (rFontBBox: ) print [rllx rlly rurx rury] ==
439
+      (uFontBBox: ) print [ullx ully uurx uury] ==
440
+      flush
441
+    } if
442
+   grestore
443
+
444
+	% Disable the character cache, to avoid excessive allocation
445
+	% and memory sandbars.
446
+
447
+   mark cachestatus   /upper exch def
448
+   cleartomark 0 setcachelimit
449
+   
450
+	% Write the font header.
451
+
452
+   writefontheader
453
+
454
+	% Establish an image device for rasterizing characters.
455
+
456
+   matrix currentmatrix
457
+     dup 4 rminx neg put
458
+     dup 5 rminy neg put
459
+	% Round the width up to a multiple of 8
460
+	% so we don't get garbage bits in the last byte of each row.
461
+   rw 7 add -8 and rh <ff 00> makeimagedevice
462
+     /cdevice exch def
463
+   nulldevice			% prevent page device switching
464
+   cdevice setdevice
465
+
466
+	% Rasterize each character in turn.
467
+
468
+   /raster   rw 7 add 8 idiv   def
469
+   /row   raster string   def
470
+   /zerow   row length string   def
471
+   0 1 Encoding length 1 sub
472
+    { /cindex exch def
473
+      Encoding cindex get /.notdef ne
474
+       { VDEBUG { Encoding cindex get == flush } if
475
+         erasepage initgraphics
476
+	 0 0 moveto currentpoint transform add
477
+	 ( ) dup 0 cindex put show
478
+	 currentpoint transform add exch sub round cvi
479
+	   /cwidth exch abs def
480
+	 rw rh devbbox
481
+	 VDEBUG
482
+	  { (image bbox: ) print 4 copy 4 2 roll 4 array astore == flush
483
+	  } if
484
+		% Save the device bounding box.
485
+		% Note that this is in current device coordinates,
486
+		% not PCL (right-handed) coordinates.
487
+	 /bqx exch def  /bpx exch def  /bqy exch def  /bpy exch def
488
+		% Re-render with the character justified to (0,0).
489
+		% This may be either the lower left or the upper left corner.
490
+	 bpx neg bpy neg idtransform moveto
491
+	 erasepage
492
+	 VDEBUG { (show point: ) print [ currentpoint transform ] == flush } if
493
+	 ( ) dup 0 cindex put show
494
+		% Find the bounding box.  Note that xmin and ymin are now 0,
495
+		% xmax1 = xw, and ymax1 = yh.
496
+	 rw rh devbbox
497
+	   /xw exch def
498
+		% xmin or ymin can be non-zero only if the character is blank.
499
+	   xw 0 eq
500
+	    { pop }
501
+	    { dup 0 ne { (Non-zero xmin! ) print = } { pop } ifelse }
502
+	   ifelse
503
+	   /yh exch def
504
+	   yh 0 eq
505
+	    { pop }
506
+	    { dup 0 ne { (Non-zero ymin! ) print = } { pop } ifelse }
507
+	   ifelse
508
+
509
+	 /xbw xw 7 add 8 idiv def
510
+	 /xright raster 8 mul xw sub def
511
+		% Write the Character Code command.
512
+	 outfile (\033*c) writestring
513
+	 outfile cindex write==only
514
+	 outfile (E) writestring
515
+	 	% Write the Character Definition command.
516
+	 outfile (\033\(s) writestring
517
+	 yh xbw mul 16 add
518
+	 outfile exch write=only
519
+		% Record the character position for the .PCM file.
520
+	 /cfpos outfile fileposition 1 add def
521
+	 outfile (W\004\000\016\001) writestring
522
+	 orientation (Orientation) wbyte 0 (Reserved) wbyte
523
+	 rminx bpx add r0x sub (Left Offset) wword
524
+	 flipY { rminy bpy add neg } { rminy bqy add } ifelse r0y sub
525
+	   (Top Offset) wword
526
+	 xw (Character Width) wword
527
+	 yh (Character Height) wword
528
+	 cwidth orientation 2 ge { neg } if 4 mul (Delta X) wword
529
+		% Write the character data.
530
+	 flipY { 0 1 yh 1 sub } { yh 1 sub -1 0 } ifelse
531
+	  { cdevice exch row copyscanlines
532
+	    0 xbw getinterval
533
+	    CDEBUG
534
+	     { dup
535
+	        { 8
536
+		   { dup 128 ge { (+) } { (.) } ifelse print
537
+		     127 and 1 bitshift
538
+		   }
539
+		  repeat pop
540
+	        }
541
+	       forall (\n) print
542
+	     }
543
+	    if
544
+	    outfile exch writestring
545
+	  }
546
+	 for
547
+       }
548
+       { /bpx 0 def   /bpy 0 def   /bqx 0 def   /bqy 0 def
549
+	 /cwidth 0 def
550
+	 /cfpos 0 def
551
+       }
552
+      ifelse
553
+
554
+    }
555
+   for
556
+
557
+	% Wrap up.
558
+
559
+   upper setcachelimit
560
+   outfile closefile
561
+
562
+   nulldevice			% prevent page device switching
563
+   saved end end end restore
564
+
565
+ } def
566
+
567
+% Provide definitions for testing with older or non-custom interpreters.
568
+
569
+/.findzeros where { pop (%END) .skipeof } if
570
+/.findzeros
571
+ { userdict begin   /zs exch def   /zl zs length def
572
+   0 { dup zl ge { exit } if dup zs exch get 0 ne { exit } if 1 add } loop
573
+   zl { dup 0 eq { exit } if dup 1 sub zs exch get 0 ne { exit } if 1 sub } loop
574
+   exch 3 bitshift exch 3 bitshift
575
+   2 copy lt
576
+    { exch zs 1 index -3 bitshift get
577
+       { dup 16#80 and 0 ne { exit } if exch 1 add exch 1 bitshift } loop pop
578
+      exch zs 1 index -3 bitshift 1 sub get
579
+       { dup 1 and 0 ne { exit } if exch 1 sub exch -1 bitshift } loop pop
580
+    }
581
+   if end
582
+ } bind def
583
+%END
584
+
585
+/write=only where { pop (%END) .skipeof } if
586
+/w=s 128 string def
587
+/write=only
588
+ { w=s cvs writestring
589
+ } bind def
590
+%END
591
+
592
+%**************** Test
593
+/PCLTEST where {
594
+  pop
595
+  /DEBUG true def
596
+  /CDEBUG true def
597
+  /VDEBUG true def
598
+  /Times-Roman findfont 10 scalefont setfont
599
+  (t.pcf) (w) file
600
+  300 72 div dup scale
601
+  300 writePCL
602
+  flush quit
603
+} if

+ 44
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/ghostpdf.inf View File

@@ -0,0 +1,44 @@
1
+; GHOSTPDF.INF (for Windows 2k, XP and XP x64 edition)
2
+
3
+[Version]
4
+Signature="$Windows NT$"
5
+Provider=Ghostgum Software Pty Ltd
6
+ClassGUID={4D36E979-E325-11CE-BFC1-08002BE10318}
7
+Class=Printer
8
+CatalogFile=oemprint.cat
9
+
10
+DriverVer=01/02/2007,1.0.0.1
11
+
12
+; Manufacturer section
13
+[Manufacturer]
14
+"Ghostscript"=Ghostscript,NTamd64,NTia64
15
+
16
+; Model sections
17
+[Ghostscript]
18
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
19
+
20
+[Ghostscript.NTamd64]
21
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
22
+
23
+[Ghostscript.NTia64]
24
+"Ghostscript PDF" = GHOSTPDF.PPD, Ghostscript_PDF, Ghostscript_PDF_Writer
25
+
26
+; Installer section
27
+[GHOSTPDF.PPD]
28
+CopyFiles=@GHOSTPDF.PPD
29
+DataSection=PSCRIPT_DATA
30
+Include=NTPRINT.INF
31
+Needs=PSCRIPT.OEM
32
+
33
+[DestinationDirs]
34
+DefaultDestDir=66000
35
+
36
+[SourceDisksNames]
37
+1=%Disk1%,,,""
38
+
39
+[SourceDisksFiles]
40
+GHOSTPDF.PPD =1
41
+
42
+[Strings]
43
+Disk1="Ghostscript PPD Setup Disk 1"
44
+; end of ghostpdf.inf

+ 522
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/ghostpdf.ppd View File

@@ -0,0 +1,522 @@
1
+*PPD-Adobe: "4.3"
2
+*FileVersion: "1.1"
3
+*FormatVersion: "4.3" 
4
+*LanguageEncoding: ISOLatin1
5
+*LanguageVersion: English
6
+*Manufacturer: "Ghostscript"
7
+*ModelName: "Ghostscript PDF Writer"
8
+*ShortNickName: "Ghostscript"
9
+*NickName: "Ghostscript"
10
+*% PCFileName should be of the form XXNNNNNN.PPD where XX is an assigned
11
+*% manufacturer code.
12
+*PCFileName: "GHOSTPDF.PPD"
13
+*Product: "(Ghostscript)"
14
+*Product: "(AFPL Ghostscript)"
15
+*Product: "(GNU Ghostscript)"
16
+*Product: "(GPL Ghostscript)"
17
+*PSVersion: "(3010) 815"
18
+
19
+*% *DefaultImageableArea:
20
+*% *DefaultPageRegion:
21
+*% *PageRegion:
22
+*% *ImageableArea:
23
+*% *DefaultPageSize:
24
+*% *PageSize:
25
+*% *DefaultPaperDimension:
26
+*% *PaperDimension:
27
+
28
+*% == Above are required
29
+
30
+*Copyright: "2004-2006 Ghostgum Software Pty Ltd"
31
+*%
32
+*%  Copyright (C) 2004-2006, Ghostgum Software Pty Ltd.  All rights reserved.
33
+*%
34
+*%  Permission is hereby granted, free of charge, to any person obtaining
35
+*%  a copy of this file ("Software"), to deal in the Software without
36
+*%  restriction, including without limitation the rights to use, copy,
37
+*%  modify, merge, publish, distribute, sublicense, and/or sell copies of
38
+*%  this Software, and to permit persons to whom this file is furnished to
39
+*%  do so, subject to the following conditions:
40
+*%
41
+*%  This Software is distributed with NO WARRANTY OF ANY KIND.  No author
42
+*%  or distributor accepts any responsibility for the consequences of using it,
43
+*%  or for whether it serves any particular purpose or works at all, unless he
44
+*%  or she says so in writing.
45
+*%
46
+*%  The above copyright notice and this permission notice shall be included
47
+*%  in all copies or substantial portions of the Software.
48
+
49
+*% There is an accompanying file ghostpdf.inf that is used to 
50
+*% install this PPD on Windows 2k/XP.
51
+*% This PPD includes configuration items specific to generating
52
+*% PDF files with ghostscript.
53
+*% If you are not using the ghostscript pdfwrite device,
54
+*% all items in the PDF group should be left as "Default".
55
+
56
+
57
+*% == Basic Capabilities
58
+*LanguageLevel: "3"
59
+*ColorDevice: True
60
+*DefaultColorSpace: RGB
61
+*FileSystem: True
62
+*Extensions: CMYK FileSystem Composite
63
+*TTRasterizer: Type42
64
+*FreeVM: "10000000"
65
+*PrintPSErrors: True
66
+*ContoneOnly: True
67
+*% AccurateScreensSupport: True
68
+
69
+*% order dependency
70
+*%  10 HWResolution
71
+*%  20 PageSize and other page device parameters
72
+*%  30 PDFSETTINGS
73
+*%  40 distiller parameters
74
+
75
+*% == Resolution
76
+*OpenUI *Resolution: PickOne
77
+*DefaultResolution: 600dpi
78
+*OrderDependency: 10 AnySetup *Resolution
79
+*Resolution 72dpi: "<< /HWResolution [72 72] >> setpagedevice"
80
+*Resolution 96dpi: "<< /HWResolution [96 96] >> setpagedevice"
81
+*Resolution 144dpi: "<< /HWResolution [144 144] >> setpagedevice"
82
+*Resolution 150dpi: "<< /HWResolution [150 150] >> setpagedevice"
83
+*Resolution 300dpi: "<< /HWResolution [300 300] >> setpagedevice"
84
+*Resolution 600dpi: "<< /HWResolution [600 600] >> setpagedevice"
85
+*Resolution 720dpi: "<< /HWResolution [720 720] >> setpagedevice"
86
+*Resolution 1200dpi: "<< /HWResolution [1200 1200] >> setpagedevice"
87
+*Resolution 2400dpi: "<< /HWResolution [2400 2400] >> setpagedevice"
88
+*Resolution 3600dpi: "<< /HWResolution [3600 3600] >> setpagedevice"
89
+*Resolution 4000dpi: "<< /HWResolution [4000 4000] >> setpagedevice"
90
+*CloseUI: *Resolution
91
+
92
+
93
+*% == Paper stuff
94
+*% Page sizes taken from ghostscript gs_statd.ps.
95
+*% Ghostscript pdfwrite ignores Orientation, so set the
96
+*% custom page width/height and then use an Install procedure
97
+*% to rotate the image.
98
+
99
+*HWMargins: 0 0 0 0
100
+*ParamCustomPageSize Width: 1 points 1 5670
101
+*ParamCustomPageSize Height: 2 points 1 5670
102
+*ParamCustomPageSize WidthOffset/Width Margin: 3 points 0 5670
103
+*ParamCustomPageSize HeightOffset/Height Margin: 4 points 0 5670
104
+*ParamCustomPageSize Orientation: 5 int 0 3
105
+*NonUIOrderDependency: 20 AnySetup *CustomPageSize
106
+*CustomPageSize True: "
107
+  5 -2 roll exch 5 2 roll
108
+  3 -2 roll exch 3 2 roll
109
+  [ {}
110
+    {90 rotate 0 currentpagedevice /PageSize get 0 get neg translate}
111
+    {180 rotate currentpagedevice /PageSize get 
112
+     dup 0 get neg exch 1 get neg translate}
113
+    {270 rotate currentpagedevice /PageSize get 1 get neg 0 translate}
114
+  ] exch get
115
+  4 dict dup begin 6 1 roll
116
+  /Install exch def
117
+  2 array astore /PageOffset exch def
118
+  2 array astore /PageSize exch def
119
+  /ImagingBBox null def
120
+  end setpagedevice"
121
+*End
122
+*MaxMediaWidth: "5670"
123
+*MaxMediaHeight: "5670"
124
+
125
+*LandscapeOrientation: Any
126
+
127
+*OpenUI *PageSize: PickOne
128
+*DefaultPageSize: Letter
129
+*OrderDependency: 20 AnySetup *PageSize
130
+*PageSize Tabloid: "<< /PageSize [792 1224] /ImagingBBox null >> setpagedevice"
131
+*PageSize Ledger: "<< /PageSize [1224 792] /ImagingBBox null >> setpagedevice"
132
+*PageSize Legal: "<< /PageSize [612 1008] /ImagingBBox null >> setpagedevice"
133
+*PageSize Letter: "<< /PageSize [612 792] /ImagingBBox null >> setpagedevice"
134
+*PageSize LetterSmall: "<< /PageSize [612 792] /ImagingBBox [25 25 587 767] >> setpagedevice"
135
+*PageSize Statement: "<< /PageSize [396 612] /ImagingBBox null >> setpagedevice"
136
+*PageSize Note: "<< /PageSize [612 792] /ImagingBBox [25 25 587 767] >> setpagedevice"
137
+*PageSize A0: "<< /PageSize [2384 3370] /ImagingBBox null >> setpagedevice"
138
+*PageSize A1: "<< /PageSize [1684 2384] /ImagingBBox null >> setpagedevice"
139
+*PageSize A2: "<< /PageSize [1191 1684] /ImagingBBox null >> setpagedevice"
140
+*PageSize A3: "<< /PageSize [842 1191] /ImagingBBox null >> setpagedevice"
141
+*PageSize A4: "<< /PageSize [595 842] /ImagingBBox null >> setpagedevice"
142
+*PageSize A4Small: "<< /PageSize [595 842] /ImagingBBox [25 25 570 817] >> setpagedevice"
143
+*PageSize A5: "<< /PageSize [420 595] /ImagingBBox null >> setpagedevice"
144
+*PageSize A6: "<< /PageSize [297 420] /ImagingBBox null >> setpagedevice"
145
+*PageSize A7: "<< /PageSize [210 297] /ImagingBBox null >> setpagedevice"
146
+*PageSize A8: "<< /PageSize [148 210] /ImagingBBox null >> setpagedevice"
147
+*PageSize A9: "<< /PageSize [105 148] /ImagingBBox null >> setpagedevice"
148
+*PageSize A10: "<< /PageSize [73 105] /ImagingBBox null >> setpagedevice"
149
+*PageSize ISOB0/ISO B0: "<< /PageSize [2835 4008] /ImagingBBox null >> setpagedevice"
150
+*PageSize ISOB1/ISO B1: "<< /PageSize [2004 2835] /ImagingBBox null >> setpagedevice"
151
+*PageSize ISOB2/ISO B2: "<< /PageSize [1417 2004] /ImagingBBox null >> setpagedevice"
152
+*PageSize ISOB3/ISO B3: "<< /PageSize [1001 1417] /ImagingBBox null >> setpagedevice"
153
+*PageSize ISOB4/ISO B4: "<< /PageSize [709 1001] /ImagingBBox null >> setpagedevice"
154
+*PageSize ISOB5/ISO B5: "<< /PageSize [499 709] /ImagingBBox null >> setpagedevice"
155
+*PageSize ISOB6/ISO B6: "<< /PageSize [354 499] /ImagingBBox null >> setpagedevice"
156
+*PageSize B0/JIS B0: "<< /PageSize [2920 4127] /ImagingBBox null >> setpagedevice"
157
+*PageSize B1/JIS B1: "<< /PageSize [2064 2920] /ImagingBBox null >> setpagedevice"
158
+*PageSize B2/JIS B2: "<< /PageSize [1460 2064] /ImagingBBox null >> setpagedevice"
159
+*PageSize B3/JIS B3: "<< /PageSize [1032 1460] /ImagingBBox null >> setpagedevice"
160
+*PageSize B4/JIS B4: "<< /PageSize [729 1032] /ImagingBBox null >> setpagedevice"
161
+*PageSize B5/JIS B5: "<< /PageSize [516 729] /ImagingBBox null >> setpagedevice"
162
+*PageSize B6/JIS B6: "<< /PageSize [363 516] /ImagingBBox null >> setpagedevice"
163
+*PageSize EnvC0/Envelope C0: "<< /PageSize [2599 3677] /ImagingBBox null >> setpagedevice"
164
+*PageSize EnvC1/Envelope C1: "<< /PageSize [1837 2599] /ImagingBBox null >> setpagedevice"
165
+*PageSize EnvC2/Envelope C2: "<< /PageSize [1296 1837] /ImagingBBox null >> setpagedevice"
166
+*PageSize EnvC3/Envelope C3: "<< /PageSize [918 1296] /ImagingBBox null >> setpagedevice"
167
+*PageSize EnvC4/Envelope C4: "<< /PageSize [649 918] /ImagingBBox null >> setpagedevice"
168
+*PageSize EnvC5/Envelope C5: "<< /PageSize [459 649] /ImagingBBox null >> setpagedevice"
169
+*PageSize EnvC6/Envelope C6: "<< /PageSize [323 459] /ImagingBBox null >> setpagedevice"
170
+*PageSize ARCHE: "<< /PageSize [2592 3456] /ImagingBBox null >> setpagedevice"
171
+*PageSize ARCHD: "<< /PageSize [1728 2592] /ImagingBBox null >> setpagedevice"
172
+*PageSize ARCHC: "<< /PageSize [1296 1728] /ImagingBBox null >> setpagedevice"
173
+*PageSize ARCHB: "<< /PageSize [864 1296] /ImagingBBox null >> setpagedevice"
174
+*PageSize ARCHA: "<< /PageSize [648 864] /ImagingBBox null >> setpagedevice"
175
+*PageSize FLSA: "<< /PageSize [612 936] /ImagingBBox null >> setpagedevice"
176
+*PageSize FLSE: "<< /PageSize [612 936] /ImagingBBox null >> setpagedevice"
177
+*PageSize PA4: "<< /PageSize [595 792] /ImagingBBox null >> setpagedevice"
178
+*CloseUI: *PageSize
179
+
180
+*OpenUI *PageRegion: PickOne
181
+*DefaultPageRegion: Letter
182
+*OrderDependency: 20 AnySetup *PageRegion
183
+*PageRegion Tabloid: "<< /PageSize [792 1224] /ImagingBBox null >> setpagedevice"
184
+*PageRegion Ledger: "<< /PageSize [1224 792] /ImagingBBox null >> setpagedevice"
185
+*PageRegion Legal: "<< /PageSize [612 1008] /ImagingBBox null >> setpagedevice"
186
+*PageRegion Letter: "<< /PageSize [612 792] /ImagingBBox null >> setpagedevice"
187
+*PageRegion LetterSmall: "<< /PageSize [612 792] /ImagingBBox [25 25 587 767] >> setpagedevice"
188
+*PageRegion Note: "<< /PageSize [612 792] /ImagingBBox [25 25 587 767] >> setpagedevice"
189
+*PageRegion Statement: "<< /PageSize [396 612] /ImagingBBox null >> setpagedevice"
190
+*PageRegion A0: "<< /PageSize [2384 3370] /ImagingBBox null >> setpagedevice"
191
+*PageRegion A1: "<< /PageSize [1684 2384] /ImagingBBox null >> setpagedevice"
192
+*PageRegion A2: "<< /PageSize [1191 1684] /ImagingBBox null >> setpagedevice"
193
+*PageRegion A3: "<< /PageSize [842 1191] /ImagingBBox null >> setpagedevice"
194
+*PageRegion A4: "<< /PageSize [595 842] /ImagingBBox null >> setpagedevice"
195
+*PageRegion A4Small: "<< /PageSize [595 842] /ImagingBBox [25 25 570 817] >> setpagedevice"
196
+*PageRegion A5: "<< /PageSize [420 595] /ImagingBBox null >> setpagedevice"
197
+*PageRegion A6: "<< /PageSize [297 420] /ImagingBBox null >> setpagedevice"
198
+*PageRegion A7: "<< /PageSize [210 297] /ImagingBBox null >> setpagedevice"
199
+*PageRegion A8: "<< /PageSize [148 210] /ImagingBBox null >> setpagedevice"
200
+*PageRegion A9: "<< /PageSize [105 148] /ImagingBBox null >> setpagedevice"
201
+*PageRegion A10: "<< /PageSize [73 105] /ImagingBBox null >> setpagedevice"
202
+*PageRegion ISOB0/ISO B0: "<< /PageSize [2835 4008] /ImagingBBox null >> setpagedevice"
203
+*PageRegion ISOB1/ISO B1: "<< /PageSize [2004 2835] /ImagingBBox null >> setpagedevice"
204
+*PageRegion ISOB2/ISO B2: "<< /PageSize [1417 2004] /ImagingBBox null >> setpagedevice"
205
+*PageRegion ISOB3/ISO B3: "<< /PageSize [1001 1417] /ImagingBBox null >> setpagedevice"
206
+*PageRegion ISOB4/ISO B4: "<< /PageSize [709 1001] /ImagingBBox null >> setpagedevice"
207
+*PageRegion ISOB5/ISO B5: "<< /PageSize [499 709] /ImagingBBox null >> setpagedevice"
208
+*PageRegion ISOB6/ISO B6: "<< /PageSize [354 499] /ImagingBBox null >> setpagedevice"
209
+*PageRegion B0/JIS B0: "<< /PageSize [2920 4127] /ImagingBBox null >> setpagedevice"
210
+*PageRegion B1/JIS B1: "<< /PageSize [2064 2920] /ImagingBBox null >> setpagedevice"
211
+*PageRegion B2/JIS B2: "<< /PageSize [1460 2064] /ImagingBBox null >> setpagedevice"
212
+*PageRegion B3/JIS B3: "<< /PageSize [1032 1460] /ImagingBBox null >> setpagedevice"
213
+*PageRegion B4/JIS B4: "<< /PageSize [729 1032] /ImagingBBox null >> setpagedevice"
214
+*PageRegion B5/JIS B5: "<< /PageSize [516 729] /ImagingBBox null >> setpagedevice"
215
+*PageRegion B6/JIS B6: "<< /PageSize [363 516] /ImagingBBox null >> setpagedevice"
216
+*PageRegion EnvC0/Envelope C0: "<< /PageSize [2599 3677] /ImagingBBox null >> setpagedevice"
217
+*PageRegion EnvC1/Envelope C1: "<< /PageSize [1837 2599] /ImagingBBox null >> setpagedevice"
218
+*PageRegion EnvC2/Envelope C2: "<< /PageSize [1296 1837] /ImagingBBox null >> setpagedevice"
219
+*PageRegion EnvC3/Envelope C3: "<< /PageSize [918 1296] /ImagingBBox null >> setpagedevice"
220
+*PageRegion EnvC4/Envelope C4: "<< /PageSize [649 918] /ImagingBBox null >> setpagedevice"
221
+*PageRegion EnvC5/Envelope C5: "<< /PageSize [459 649] /ImagingBBox null >> setpagedevice"
222
+*PageRegion EnvC6/Envelope C6: "<< /PageSize [323 459] /ImagingBBox null >> setpagedevice"
223
+*PageRegion ARCHE: "<< /PageSize [2592 3456] /ImagingBBox null >> setpagedevice"
224
+*PageRegion ARCHD: "<< /PageSize [1728 2592] /ImagingBBox null >> setpagedevice"
225
+*PageRegion ARCHC: "<< /PageSize [1296 1728] /ImagingBBox null >> setpagedevice"
226
+*PageRegion ARCHB: "<< /PageSize [864 1296] /ImagingBBox null >> setpagedevice"
227
+*PageRegion ARCHA: "<< /PageSize [648 864] /ImagingBBox null >> setpagedevice"
228
+*PageRegion FLSA: "<< /PageSize [612 936] /ImagingBBox null >> setpagedevice"
229
+*PageRegion FLSE: "<< /PageSize [612 936] /ImagingBBox null >> setpagedevice"
230
+*PageRegion PA4: "<< /PageSize [595 792] /ImagingBBox null >> setpagedevice"
231
+*CloseUI: *PageRegion
232
+
233
+*DefaultImageableArea: Letter
234
+*ImageableArea Tabloid: "0 0 792 1224"
235
+*ImageableArea Ledger: "0 0 1224 792"
236
+*ImageableArea Legal: "0 0 612 1008"
237
+*ImageableArea Letter: "0 0 612 792"
238
+*ImageableArea LetterSmall: "25 25 587 767"
239
+*ImageableArea Note: "25 25 587 767"
240
+*ImageableArea Statement: "0 0 396 612"
241
+*ImageableArea A0: "0 0 2384 3370"
242
+*ImageableArea A1: "0 0 1684 2384"
243
+*ImageableArea A2: "0 0 1191 1684"
244
+*ImageableArea A3: "0 0 842 1191"
245
+*ImageableArea A4: "0 0 595 842"
246
+*ImageableArea A4Small: "25 25 570 817"
247
+*ImageableArea A5: "0 0 420 595"
248
+*ImageableArea A6: "0 0 297 420"
249
+*ImageableArea A7: "0 0 210 297"
250
+*ImageableArea A8: "0 0 148 210"
251
+*ImageableArea A9: "0 0 105 148"
252
+*ImageableArea A10: "0 0 73 105"
253
+*ImageableArea ISOB0/ISO B0: "0 0 2835 4008"
254
+*ImageableArea ISOB1/ISO B1: "0 0 2004 2835"
255
+*ImageableArea ISOB2/ISO B2: "0 0 1417 2004"
256
+*ImageableArea ISOB3/ISO B3: "0 0 1001 1417"
257
+*ImageableArea ISOB4/ISO B4: "0 0 709 1001"
258
+*ImageableArea ISOB5/ISO B5: "0 0 499 709"
259
+*ImageableArea ISOB6/ISO B6: "0 0 354 499"
260
+*ImageableArea B0/JIS B0: "0 0 2920 4127"
261
+*ImageableArea B1/JIS B1: "0 0 2064 2920"
262
+*ImageableArea B2/JIS B2: "0 0 1460 2064"
263
+*ImageableArea B3/JIS B3: "0 0 1032 1460"
264
+*ImageableArea B4/JIS B4: "0 0 729 1032"
265
+*ImageableArea B5/JIS B5: "0 0 516 729"
266
+*ImageableArea B6/JIS B6: "0 0 363 516"
267
+*ImageableArea EnvC0/Envelope C0: "0 0 2599 3677"
268
+*ImageableArea EnvC1/Envelope C1: "0 0 1837 2599"
269
+*ImageableArea EnvC2/Envelope C2: "0 0 1296 1837"
270
+*ImageableArea EnvC3/Envelope C3: "0 0 918 1296"
271
+*ImageableArea EnvC4/Envelope C4: "0 0 649 918"
272
+*ImageableArea EnvC5/Envelope C5: "0 0 459 649"
273
+*ImageableArea EnvC6/Envelope C6: "0 0 323 459"
274
+*ImageableArea ARCHE: "0 0 2592 3456"
275
+*ImageableArea ARCHD: "0 0 1728 2592"
276
+*ImageableArea ARCHC: "0 0 1296 1728"
277
+*ImageableArea ARCHB: "0 0 864 1296"
278
+*ImageableArea ARCHA: "0 0 648 864"
279
+*ImageableArea FLSA: "0 0 612 936"
280
+*ImageableArea FLSE: "0 0 612 936"
281
+*ImageableArea PA4: "0 0 595 792"
282
+
283
+*DefaultPaperDimension: Letter
284
+*PaperDimension Tabloid: "792 1224"
285
+*PaperDimension Ledger: "1224 792"
286
+*PaperDimension Legal: "612 1008"
287
+*PaperDimension Letter: "612 792"
288
+*PaperDimension LetterSmall: "612 792"
289
+*PaperDimension Note: "612 792"
290
+*PaperDimension Statement: "396 612"
291
+*PaperDimension A0: "2384 3370"
292
+*PaperDimension A1: "1684 2384"
293
+*PaperDimension A2: "1191 1684"
294
+*PaperDimension A3: "842 1191"
295
+*PaperDimension A4: "595 842"
296
+*PaperDimension A4Small: "595 842"
297
+*PaperDimension A5: "420 595"
298
+*PaperDimension A6: "297 420"
299
+*PaperDimension A7: "210 297"
300
+*PaperDimension A8: "148 210"
301
+*PaperDimension A9: "105 148"
302
+*PaperDimension A10: "73 105"
303
+*PaperDimension ISOB0/ISO B0: "2835 4008"
304
+*PaperDimension ISOB1/ISO B1: "2004 2835"
305
+*PaperDimension ISOB2/ISO B2: "1417 2004"
306
+*PaperDimension ISOB3/ISO B3: "1001 1417"
307
+*PaperDimension ISOB4/ISO B4: "709 1001"
308
+*PaperDimension ISOB5/ISO B5: "499 709"
309
+*PaperDimension ISOB6/ISO B6: "354 499"
310
+*PaperDimension B0/JIS B0: "2920 4127"
311
+*PaperDimension B1/JIS B1: "2064 2920"
312
+*PaperDimension B2/JIS B2: "1460 2064"
313
+*PaperDimension B3/JIS B3: "1032 1460"
314
+*PaperDimension B4/JIS B4: "729 1032"
315
+*PaperDimension B5/JIS B5: "516 729"
316
+*PaperDimension B6/JIS B6: "363 516"
317
+*PaperDimension EnvC0/Envelope C0: "2599 3677"
318
+*PaperDimension EnvC1/Envelope C1: "1837 2599"
319
+*PaperDimension EnvC2/Envelope C2: "1296 1837"
320
+*PaperDimension EnvC3/Envelope C3: "918 1296"
321
+*PaperDimension EnvC4/Envelope C4: "649 918"
322
+*PaperDimension EnvC5/Envelope C5: "459 649"
323
+*PaperDimension EnvC6/Envelope C6: "323 459"
324
+*PaperDimension ARCHE: "2592 3456"
325
+*PaperDimension ARCHD: "1728 2592"
326
+*PaperDimension ARCHC: "1296 1728"
327
+*PaperDimension ARCHB: "864 1296"
328
+*PaperDimension ARCHA: "648 864"
329
+*PaperDimension FLSA: "612 936"
330
+*PaperDimension FLSE: "612 936"
331
+*PaperDimension PA4: "595 792"
332
+
333
+
334
+*% == Fonts
335
+*DefaultFont: Courier
336
+*% First the standard 35 aliases with the actual fonts commented out.
337
+*Font Bookman-Demi: Standard "(1.05)" Standard ROM
338
+*% *Font URWBookmanL-DemiBold: Standard "(1.05)" Standard ROM
339
+*Font Bookman-DemiItalic: Standard "(1.05)" Standard ROM
340
+*% *Font URWBookmanL-DemiBoldItal: Standard "(1.05)" Standard ROM
341
+*Font Bookman-Light: Standard "(1.05)" Standard ROM
342
+*% *Font URWBookmanL-Ligh: Standard "(1.05)" Standard ROM
343
+*Font Bookman-LightItalic: Standard "(1.05)" Standard ROM
344
+*% *Font URWBookmanL-LighItal: Standard "(1.05)" Standard ROM
345
+*Font Courier: Standard "(1.05)" Standard ROM
346
+*% *Font NimbusMonL-Regu: Standard "(1.05)" Standard ROM
347
+*Font Courier-Oblique: Standard "(1.05)" Standard ROM
348
+*% *Font NimbusMonL-ReguObli: Standard "(1.05)" Standard ROM
349
+*Font Courier-Bold: Standard "(1.05)" Standard ROM
350
+*% *Font NimbusMonL-Bold: Standard "(1.05)" Standard ROM
351
+*Font Courier-BoldOblique: Standard "(1.05)" Standard ROM
352
+*% *Font NimbusMonL-BoldObli: Standard "(1.05)" Standard ROM
353
+*Font AvantGarde-Book: Standard "(1.05)" Standard ROM
354
+*% *Font URWGothicL-Book: Standard "(1.05)" Standard ROM
355
+*Font AvantGarde-BookOblique: Standard "(1.05)" Standard ROM
356
+*% *Font URWGothicL-BookObli: Standard "(1.05)" Standard ROM
357
+*Font AvantGarde-Demi: Standard "(1.05)" Standard ROM
358
+*% *Font URWGothicL-Demi: Standard "(1.05)" Standard ROM
359
+*Font AvantGarde-DemiOblique: Standard "(1.05)" Standard ROM
360
+*% *Font URWGothicL-DemiObli: Standard "(1.05)" Standard ROM
361
+*Font Helvetica: Standard "(1.05)" Standard ROM
362
+*% *Font NimbusSanL-Regu: Standard "(1.05)" Standard ROM
363
+*Font Helvetica-Oblique: Standard "(1.05)" Standard ROM
364
+*% *Font NimbusSanL-ReguItal: Standard "(1.05)" Standard ROM
365
+*Font Helvetica-Bold: Standard "(1.05)" Standard ROM
366
+*% *Font NimbusSanL-Bold: Standard "(1.05)" Standard ROM
367
+*Font Helvetica-BoldOblique: Standard "(1.05)" Standard ROM
368
+*% *Font NimbusSanL-BoldItal: Standard "(1.05)" Standard ROM
369
+*Font Helvetica-Narrow: Standard "(1.05)" Standard ROM
370
+*% *Font NimbusSanL-ReguCond: Standard "(1.05)" Standard ROM
371
+*Font Helvetica-Narrow-Oblique: Standard "(1.05)" Standard ROM
372
+*% *Font NimbusSanL-ReguCondItal: Standard "(1.05)" Standard ROM
373
+*Font Helvetica-Narrow-Bold: Standard "(1.05)" Standard ROM
374
+*% *Font NimbusSanL-BoldCond: Standard "(1.05)" Standard ROM
375
+*Font Helvetica-Narrow-BoldOblique: Standard "(1.05)" Standard ROM
376
+*% *Font NimbusSanL-BoldCondItal: Standard "(1.05)" Standard ROM
377
+*Font Palatino-Roman: Standard "(1.05)" Standard ROM
378
+*% *Font URWPalladioL-Roma: Standard "(1.05)" Standard ROM
379
+*Font Palatino-Italic: Standard "(1.05)" Standard ROM
380
+*% *Font URWPalladioL-Ital: Standard "(1.05)" Standard ROM
381
+*Font Palatino-Bold: Standard "(1.05)" Standard ROM
382
+*% *Font URWPalladioL-Bold: Standard "(1.05)" Standard ROM
383
+*Font Palatino-BoldItalic: Standard "(1.05)" Standard ROM
384
+*% *Font URWPalladioL-BoldItal: Standard "(1.05)" Standard ROM
385
+*Font NewCenturySchlbk-Roman: Standard "(1.05)" Standard ROM
386
+*% *Font CenturySchL-Roma: Standard "(1.05)" Standard ROM
387
+*Font NewCenturySchlbk-Italic: Standard "(1.05)" Standard ROM
388
+*% *Font CenturySchL-Ital: Standard "(1.05)" Standard ROM
389
+*Font NewCenturySchlbk-Bold: Standard "(1.05)" Standard ROM
390
+*% *Font CenturySchL-Bold: Standard "(1.05)" Standard ROM
391
+*Font NewCenturySchlbk-BoldItalic: Standard "(1.05)" Standard ROM
392
+*% *Font CenturySchL-BoldItal: Standard "(1.05)" Standard ROM
393
+*Font Times-Roman: Standard "(1.05)" Standard ROM
394
+*% *Font NimbusRomNo9L-Regu: Standard "(1.05)" Standard ROM
395
+*Font Times-Italic: Standard "(1.05)" Standard ROM
396
+*% *Font NimbusRomNo9L-ReguItal: Standard "(1.05)" Standard ROM
397
+*Font Times-Bold: Standard "(1.05)" Standard ROM
398
+*% *Font NimbusRomNo9L-Medi: Standard "(1.05)" Standard ROM
399
+*Font Times-BoldItalic: Standard "(1.05)" Standard ROM
400
+*% *Font NimbusRomNo9L-MediItal: Standard "(1.05)" Standard ROM
401
+*Font Symbol: Special "(001.005)" Special ROM
402
+*% *Font StandardSymL: Special (001.005)" Special ROM
403
+*Font ZapfChancery-MediumItalic: Standard "(1.05)" Standard ROM
404
+*% *Font URWChanceryL-MediItal: Standard "(1.05)" Standard ROM
405
+*Font ZapfDingbats: Special (001.005)" Special ROM
406
+*% *Font Dingbats: Special (001.005)" Special ROM
407
+*% Then a few ghostscript extras
408
+*Font Charter-Roman: Standard "(2.0-1.0)" Standard ROM
409
+*Font CharterBT-Roman: Standard "(2.0-1.0)" Standard ROM
410
+*Font Charter-Italic: Standard "(2.0-1.0)" Standard ROM
411
+*Font CharterBT-Italic: Standard "(2.0-1.0)" Standard ROM
412
+*Font Charter-Bold: Standard "(2.0-1.0)" Standard ROM
413
+*Font CharterBT-Bold: Standard "(2.0-1.0)" Standard ROM
414
+*Font Charter-BoldItalic: Standard "(2.0-1.0)" Standard ROM
415
+*Font CharterBT-BoldItalic: Standard "(2.0-1.0)" Standard ROM
416
+*Font Utopia-Regular: Standard "(001.001)" Standard ROM
417
+*Font Utopia-Italic: Standard "(001.001)" Standard ROM
418
+*Font Utopia-Bold: Standard "(001.001)" Standard ROM
419
+*Font Utopia-BoldItalic: Standard "(001.001)" Standard ROM
420
+
421
+*% == Most of these set distiller parameters
422
+*% If the target device is not the Ghostscript pdfwrite device,
423
+*% then these should all be left at "Default"
424
+*OpenGroup: PDF
425
+
426
+*% == The pdfwrite device can select different color spaces
427
+*OpenUI *ColorModel/PDF Colour Model: PickOne
428
+*DefaultColorModel: Default
429
+*OrderDependency: 20 AnySetup *ColorModel
430
+*ColorModel Default: ""
431
+*ColorModel Grey: "<< /ProcessColorModel /DeviceGray >> setpagedevice"
432
+*ColorModel RGB: "<< /ProcessColorModel /DeviceRGB >> setpagedevice"
433
+*ColorModel CMYK: "<< /ProcessColorModel /DeviceCMYK >> setpagedevice"
434
+*CloseUI: *ColorModel
435
+
436
+*OpenUI *PDFSettings/PDF Settings: PickOne
437
+*DefaultPDFSettings: Default
438
+*OrderDependency: 30 AnySetup *PDFSettings
439
+*PDFSettings Default: ""
440
+*PDFSettings Screen: ".distillersettings /screen get setdistillerparams"
441
+*PDFSettings Ebook: ".distillersettings /ebook get setdistillerparams"
442
+*PDFSettings Printer: ".distillersettings /printer get setdistillerparams"
443
+*PDFSettings Prepress: ".distillersettings /prepress get setdistillerparams"
444
+*CloseUI: *PDFSettings
445
+
446
+*OpenUI *ColorImageFilter/PDF Colour Image Compression: PickOne
447
+*DefaultColorImageFilter: Default
448
+*OrderDependency: 40 AnySetup *ColorImageFilter
449
+*ColorImageFilter Default: ""
450
+*ColorImageFilter JPEG: "<< /AutoFilterColorImages false /ColorImageFilter /DCTEncode >> setdistillerparams"
451
+*ColorImageFilter Flate: "<< /AutoFilterColorImages false /ColorImageFilter /FlateEncode >> setdistillerparams"
452
+*CloseUI: *ColorImageFilter
453
+
454
+*OpenUI *GrayImageFilter/PDF Grey Image Compression: PickOne
455
+*DefaultGrayImageFilter: Default
456
+*OrderDependency: 40 AnySetup *GrayImageFilter
457
+*GrayImageFilter Default: ""
458
+*GrayImageFilter JPEG: "<< /AutoFilterGrayImages false /GrayImageFilter /DCTEncode >> setdistillerparams"
459
+*GrayImageFilter Flate: "<< /AutoFilterGrayImages false /GrayImageFilter /FlateEncode >> setdistillerparams"
460
+*CloseUI: *GrayImageFilter
461
+
462
+*OpenUI *MonoImageFilter/PDF Monochrome Image Compression: PickOne
463
+*DefaultMonoImageFilter: Default
464
+*OrderDependency: 40 AnySetup *MonoImageFilter
465
+*MonoImageFilter Default: ""
466
+*MonoImageFilter FaxG3/Fax G3: "<< /AutoFilterMonoImages false /MonoImageFilter /CCITTFaxEncode >> setdistillerparams"
467
+*MonoImageFilter Flate: "<< /AutoFilterMonoImages false /MonoImageFilter /FlateEncode >> setdistillerparams"
468
+*CloseUI: *MonoImageFilter
469
+
470
+*OpenUI *CompatibilityLevel/PDF Compatibility: PickOne
471
+*DefaultCompatibilityLevel: Default
472
+*OrderDependency: 40 AnySetup *CompatibilityLevel
473
+*CompatibilityLevel Default: ""
474
+*CompatibilityLevel 1.2: "<< /CompatibilityLevel 1.2 >> setdistillerparams"
475
+*CompatibilityLevel 1.3: "<< /CompatibilityLevel 1.3 >> setdistillerparams"
476
+*CompatibilityLevel 1.4: "<< /CompatibilityLevel 1.4 >> setdistillerparams"
477
+*CloseUI: *CompatibilityLevel
478
+
479
+*OpenUI *AutoRotatePages/PDF AutoRotatePages: PickOne
480
+*DefaultAutoRotatePages: Default
481
+*OrderDependency: 40 AnySetup *AutoRotatePages
482
+*AutoRotatePages Default: ""
483
+*AutoRotatePages None: "<< /AutoRotatePages /None >> setdistillerparams"
484
+*AutoRotatePages PageByPage: "<< /AutoRotatePages /PageByPage >> setdistillerparams"
485
+*AutoRotatePages All: "<< /AutoRotatePages /All >> setdistillerparams"
486
+*CloseUI: *AutoRotatePages
487
+
488
+*OpenUI *ParseDSCComments/PDF ParseDSCComments: PickOne
489
+*DefaultParseDSCComments: Default
490
+*OrderDependency: 40 AnySetup *ParseDSCComments
491
+*ParseDSCComments Default: ""
492
+*ParseDSCComments True: "<< /ParseDSCComments true >> setdistillerparams"
493
+*ParseDSCComments False: "<< /ParseDSCComments false >> setdistillerparams"
494
+*CloseUI: *ParseDSCComments
495
+
496
+*OpenUI *EmbedAllFonts/PDF EmbedAllFonts: PickOne
497
+*DefaultEmbedAllFonts: Default
498
+*OrderDependency: 40 AnySetup *EmbedAllFonts
499
+*EmbedAllFonts Default: ""
500
+*EmbedAllFonts True: "<< /EmbedAllFonts true >> setdistillerparams"
501
+*EmbedAllFonts False: "<< /EmbedAllFonts false >> setdistillerparams"
502
+*CloseUI: *EmbedAllFonts
503
+
504
+*OpenUI *SubsetFonts/PDF SubsetFonts: PickOne
505
+*DefaultSubsetFonts: Default
506
+*OrderDependency: 40 AnySetup *SubsetFonts
507
+*SubsetFonts Default: ""
508
+*SubsetFonts True: "<< /SubsetFonts true >> setdistillerparams"
509
+*SubsetFonts False: "<< /SubsetFonts false >> setdistillerparams"
510
+*CloseUI: *SubsetFonts
511
+
512
+*OpenUI *CompressPages/PDF Compress Pages: PickOne
513
+*DefaultCompressPages: Default
514
+*OrderDependency: 40 AnySetup *CompressPages
515
+*CompressPages Default: ""
516
+*CompressPages True: "<< /CompressPages true >> setdistillerparams"
517
+*CompressPages False: "<< /CompressPages false >> setdistillerparams"
518
+*CloseUI: *CompressPages
519
+
520
+*CloseGroup: PDF
521
+
522
+*% End of Ghostscript PDF Writer PPD file

+ 1069
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_agl.ps
File diff suppressed because it is too large
View File


+ 331
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_btokn.ps View File

@@ -0,0 +1,331 @@
1
+%    Copyright (C) 1994, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_btokn.ps 8954 2008-08-08 04:22:38Z ray $
17
+% Initialization file for binary tokens.
18
+% When this is run, systemdict is still writable,
19
+% but everything defined here goes into level2dict.
20
+
21
+% Define whether or not to allow writing dictionaries.
22
+% This is a non-standard feature!
23
+/WRITEDICTS false def
24
+
25
+languagelevel 1 .setlanguagelevel
26
+level2dict begin
27
+
28
+% Initialization for the system name table.
29
+
30
+mark
31
+% 0
32
+	/abs /add /aload /anchorsearch /and
33
+	/arc /arcn /arct /arcto /array
34
+	/ashow /astore /awidthshow /begin /bind
35
+	/bitshift /ceiling /charpath /clear /cleartomark
36
+% 20
37
+	/clip /clippath /closepath /concat /concatmatrix
38
+	/copy /count /counttomark /currentcmykcolor /currentdash
39
+	/currentdict /currentfile /currentfont /currentgray /currentgstate
40
+	/currenthsbcolor /currentlinecap /currentlinejoin /currentlinewidth /currentmatrix
41
+% 40
42
+	/currentpoint /currentrgbcolor /currentshared /curveto /cvi
43
+	/cvlit /cvn /cvr /cvrs /cvs
44
+	/cvx /def /defineusername /dict /div
45
+	/dtransform /dup /end /eoclip /eofill
46
+% 60
47
+	/eoviewclip /eq /exch /exec /exit
48
+	/file /fill /findfont /flattenpath /floor
49
+	/flush /flushfile /for /forall /ge
50
+	/get /getinterval /grestore /gsave /gstate
51
+% 80
52
+	/gt /identmatrix /idiv /idtransform /if
53
+	/ifelse /image /imagemask /index /ineofill
54
+	/infill /initviewclip /inueofill /inufill /invertmatrix
55
+	/itransform /known /le /length /lineto
56
+% 100
57
+	/load /loop /lt /makefont /matrix
58
+	/maxlength /mod /moveto /mul /ne
59
+	/neg /newpath /not /null /or
60
+	/pathbbox /pathforall /pop /print /printobject
61
+% 120
62
+	/put /putinterval /rcurveto /read /readhexstring
63
+	/readline /readstring /rectclip /rectfill /rectstroke
64
+	/rectviewclip /repeat /restore /rlineto /rmoveto
65
+	/roll /rotate /round /save /scale
66
+% 140
67
+	/scalefont /search /selectfont /setbbox /setcachedevice
68
+	/setcachedevice2 /setcharwidth /setcmykcolor /setdash /setfont
69
+	/setgray /setgstate /sethsbcolor /setlinecap /setlinejoin
70
+	/setlinewidth /setmatrix /setrgbcolor /setshared /shareddict
71
+% 160
72
+	/show /showpage /stop /stopped /store
73
+	/string /stringwidth /stroke /strokepath /sub
74
+	/systemdict /token /transform /translate /truncate
75
+	/type /uappend /ucache /ueofill /ufill
76
+% 180
77
+	/undef /upath /userdict /ustroke /viewclip
78
+	/viewclippath /where /widthshow /write /writehexstring
79
+	/writeobject /writestring /wtranslation /xor /xshow
80
+	/xyshow /yshow /FontDirectory /SharedFontDirectory /Courier
81
+% 200
82
+	/Courier-Bold /Courier-BoldOblique /Courier-Oblique /Helvetica /Helvetica-Bold
83
+	/Helvetica-BoldOblique /Helvetica-Oblique /Symbol /Times-Bold /Times-BoldItalic
84
+	/Times-Italic /Times-Roman /execuserobject /currentcolor /currentcolorspace
85
+	/currentglobal /execform /filter /findresource /globaldict
86
+% 220
87
+	/makepattern /setcolor /setcolorspace /setglobal /setpagedevice
88
+	/setpattern
89
+% pad to 256
90
+	counttomark 256 exch sub { 0 } repeat
91
+% 256
92
+	/= /== /ISOLatin1Encoding /StandardEncoding
93
+% 260
94
+	([) cvn (]) cvn /atan /banddevice /bytesavailable
95
+	/cachestatus /closefile /colorimage /condition /copypage
96
+	/cos /countdictstack /countexecstack /cshow /currentblackgeneration
97
+	/currentcacheparams /currentcolorscreen /currentcolortransfer /currentcontext /currentflat
98
+% 280
99
+	/currenthalftone /currenthalftonephase /currentmiterlimit /currentobjectformat /currentpacking
100
+	/currentscreen /currentstrokeadjust /currenttransfer /currentundercolorremoval /defaultmatrix
101
+	/definefont /deletefile /detach /deviceinfo /dictstack
102
+	/echo /erasepage /errordict /execstack /executeonly
103
+% 300
104
+	/exp /false /filenameforall /fileposition /fork
105
+	/framedevice /grestoreall /handleerror /initclip /initgraphics
106
+	/initmatrix /instroke /inustroke /join /kshow
107
+	/ln /lock /log /mark /monitor
108
+% 320
109
+	/noaccess /notify /nulldevice /packedarray /quit
110
+	/rand /rcheck /readonly /realtime /renamefile
111
+	/renderbands /resetfile /reversepath /rootfont /rrand
112
+	/run /scheck /setblackgeneration /setcachelimit /setcacheparams
113
+% 340
114
+	/setcolorscreen /setcolortransfer /setfileposition /setflat /sethalftone
115
+	/sethalftonephase /setmiterlimit /setobjectformat /setpacking /setscreen
116
+	/setstrokeadjust /settransfer /setucacheparams /setundercolorremoval /sin
117
+	/sqrt /srand /stack /status /statusdict
118
+% 360
119
+	/true /ucachestatus /undefinefont /usertime /ustrokepath
120
+	/version /vmreclaim /vmstatus /wait /wcheck
121
+	/xcheck /yield /defineuserobject /undefineuserobject /UserObjects
122
+	/cleardictstack
123
+% 376
124
+	/A /B /C /D /E /F /G /H /I /J /K /L /M
125
+	/N /O /P /Q /R /S /T /U /V /W /X /Y /Z
126
+	/a /b /c /d /e /f /g /h /i /j /k /l /m
127
+	/n /o /p /q /r /s /t /u /v /w /x /y /z
128
+% 428
129
+	/setvmthreshold (<<) cvn
130
+	(>>) cvn /currentcolorrendering /currentdevparams /currentoverprint /currentpagedevice
131
+	/currentsystemparams /currentuserparams /defineresource /findencoding /gcheck
132
+% 440
133
+	/glyphshow /languagelevel /product /pstack /resourceforall
134
+	/resourcestatus /revision /serialnumber /setcolorrendering /setdevparams
135
+	/setoverprint /setsystemparams /setuserparams /startjob /undefineresource
136
+	/GlobalFontDirectory /ASCII85Decode /ASCII85Encode /ASCIIHexDecode /ASCIIHexEncode
137
+% 460
138
+	/CCITTFaxDecode /CCITTFaxEncode /DCTDecode /DCTEncode /LZWDecode
139
+	/LZWEncode /NullEncode /RunLengthDecode /RunLengthEncode /SubFileDecode
140
+	/CIEBasedA /CIEBasedABC /DeviceCMYK /DeviceGray /DeviceRGB
141
+	/Indexed /Pattern /Separation /CIEBasedDEF /CIEBasedDEFG
142
+% 480
143
+	/DeviceN
144
+% 481 -- end
145
+.packtomark .installsystemnames
146
+
147
+% Define printobject and writeobject.
148
+% These are mostly implemented in PostScript, so that we don't have to
149
+% worry about interrupts or callbacks when writing to the output file.
150
+
151
+% Define procedures for accumulating the space required to represent
152
+% an object in binary form.  The procedures for composite objects (arrays
153
+% and dictionaries) leave different results on the stack:
154
+%	<#refs> <#chars> <simple_obj> -proc- <#refs> <#chars>
155
+%	<#refs> <#chars> <array|dict> -proc- <array|dict> <#refs> <#chars>
156
+% This is required so that .writeobjects can also accumulate the actual
157
+% list of composite objects to write in the binary object sequence.
158
+/cntdict mark
159
+  /integertype /pop load
160
+  /realtype 1 index
161
+  /marktype 1 index
162
+  /nulltype 1 index
163
+  /booleantype 1 index
164
+  /nametype { length add } bind
165
+  /stringtype 1 index
166
+  /arraytype null
167
+  /dicttype null
168
+.dicttomark def
169
+/.cntobj {	% <<arguments and results as for procedures in cntdict>>
170
+  dup type //cntdict exch get exec
171
+} .bind def
172
+cntdict /arraytype {
173
+  dup dup length 5 -1 roll add 4 2 roll { .cntobj } forall
174
+} bind put
175
+cntdict /dicttype {
176
+  WRITEDICTS {
177
+    dup dup length 2 mul 5 -1 roll add 4 2 roll {
178
+	% We have to use .execn here, rather than simply rolling the
179
+	% value under the top elements, because key might involve arrays
180
+	% or dictionaries.
181
+      cvlit {.cntobj} exch 2 .execn .cntobj
182
+    } forall
183
+  } {
184
+    /writeobject .systemvar /typecheck signalerror
185
+  } ifelse
186
+} bind put
187
+
188
+/w2dict mark
189
+  /nametype { 2 copy .writecvs pop } bind
190
+  /stringtype 1 index
191
+.dicttomark def
192
+
193
+/.bosheader {		% <top_length> <total_length> <string8> .bosheader
194
+			%   <string4|8>
195
+  dup 0 currentobjectformat 127 add put		% object format => BOS tag
196
+  2 index 255 le 2 index 65531 le and {
197
+	% Use the short header format: tag toplen(1) totlen(2)
198
+    exch 4 add exch
199
+    0 4 getinterval
200
+    dup 1 5 -1 roll put
201
+  } {
202
+	% Use the long header format: tag 0(1) toplen(2) totlen(4)
203
+    exch 8 add exch
204
+     0 0 4 2 roll .bosobject exch pop exch pop	% store with byte swapping
205
+  } ifelse		% Stack: shortlen str
206
+  exch dup -8 bitshift exch 255 and	% str hibyte lobyte
207
+  currentobjectformat 1 and 0 eq {	% lsb first
208
+    exch
209
+  } if
210
+  2 index 3 3 -1 roll put
211
+  1 index 2 3 -1 roll put
212
+} .bind def
213
+
214
+/.writeobjects {	% <file> <tag> <array> .writeobjects -
215
+  mark exch
216
+
217
+	% Count the space required for refs and strings.
218
+
219
+  dup length 0 3 -1 roll
220
+	% Stack: file tag -mark- #refs #chars array
221
+  dup 4 1 roll { .cntobj } forall
222
+
223
+	% Write the header.
224
+
225
+	% Stack: file tag -mark- array1 ... (array|dict)N #refs #chars
226
+  counttomark 3 add -2 roll 4 1 roll
227
+	% Stack: -mark- array1 ... (array|dict)N tag #refs #chars file
228
+  dup counttomark 1 sub index length
229
+  4 index 3 bitshift 4 index add
230
+  (xxxxxxxx) .bosheader writestring
231
+
232
+	% Write the objects per se.
233
+
234
+  3 1 roll pop
235
+  counttomark 1 sub index length 3 bitshift exch
236
+  3 bitshift
237
+	% Stack: -mark- array1 ... (array|dict)N tag file ref# char#
238
+  counttomark 4 sub {
239
+    counttomark -1 roll dup 6 1 roll
240
+	% Stack: ... objN tag file ref# char# objN
241
+    dup type /dicttype eq {		% can't be first object
242
+      { 5 1 roll (x\000xxxxxx) .bosobject
243
+	3 index exch writestring
244
+	4 -1 roll (x\000xxxxxx) .bosobject
245
+	3 index exch writestring
246
+      } forall
247
+    } {
248
+      { (x\000xxxxxx) .bosobject
249
+	dup 1 6 index put
250
+	3 index exch writestring
251
+	4 -1 roll pop 0 4 1 roll	% clear tag
252
+      } forall
253
+    } ifelse
254
+  } repeat
255
+
256
+	% Write the strings and names.
257
+
258
+  pop pop exch pop
259
+	% Stack: -mark- array1 ... array|dictN file
260
+  counttomark 1 sub {
261
+    counttomark -1 roll {
262
+		% The counting pass ensured that the keys and values
263
+		% of any dictionary must be writable objects.
264
+		% Hence, we are processing a dictionary iff
265
+		% the next-to-top stack element is not a file.
266
+      1 index type /filetype ne {
267
+	exch 2 index exch dup type //w2dict exch .knownget
268
+	 { exec } { pop } ifelse pop
269
+      } if
270
+      dup type //w2dict exch .knownget { exec } { pop } ifelse
271
+    } forall
272
+  } repeat
273
+
274
+	% Clean up.
275
+
276
+	% Stack: -mark- file
277
+  pop pop
278
+
279
+} .bind def
280
+
281
+/printobject {		% <obj> <tag> printobject -
282
+  currentobjectformat 0 eq {
283
+      /printobject .systemvar /undefined signalerror
284
+  } if
285
+  (%stdout) (w) file 2 index 2 index .writeobject pop pop
286
+} odef
287
+/writeobject {		% <file> <obj> <tag> writeobject -
288
+  currentobjectformat 0 eq {
289
+      /writeobject .systemvar /undefined signalerror
290
+  } if
291
+  2 .argindex pop	% check # of args
292
+  .writeobject
293
+} odef
294
+/.writeobject {
295
+  3 copy exch
296
+		% We must allocate the array in local VM
297
+		% to avoid a possible invalidaccess.
298
+  .currentglobal false .setglobal exch 1 array astore exch .setglobal
299
+  .writeobjects pop pop pop
300
+} .bind def
301
+
302
+% Implement binary error message output.
303
+/.objectprinttest {		% <obj> .objectprinttest -
304
+		% This is a pseudo-operator so it will restore the stack
305
+		% if it gets an error.
306
+  mark 0 0 3 .argindex .cntobj cleartomark pop
307
+} bind odef
308
+/.printerror {
309
+  $error /binary get .languagelevel 2 ge and {
310
+    currentobjectformat 0 ne {
311
+      [ /Error $error /errorname get $error /command get
312
+		% Convert the object with cvs if it isn't printable.
313
+      dup { .objectprinttest } .internalstopped {
314
+	pop 100 string cvs
315
+      } if
316
+      false ] 250 printobject
317
+    }
318
+    //.printerror	% known to be a procedure
319
+    ifelse
320
+  }
321
+  //.printerror		% known to be a procedure
322
+  ifelse
323
+} bind def
324
+
325
+currentdict /cntdict .undef
326
+currentdict /w2dict .undef
327
+
328
+% End of level2dict
329
+
330
+end
331
+.setlanguagelevel

+ 47
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_ce_e.ps View File

@@ -0,0 +1,47 @@
1
+%    Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_ce_e.ps 6300 2005-12-28 19:56:24Z giles $
17
+% Define the Adobe CE (Central European) encoding vector.
18
+% We define it by differences from the ISOLatin1Encoding vector.
19
+/CEEncoding
20
+ISOLatin1Encoding 0 39 getinterval aload pop
21
+% 047
22
+    /quotesingle
23
+ISOLatin1Encoding 40 56 getinterval aload pop
24
+% 140
25
+    /grave
26
+ISOLatin1Encoding 97 31 getinterval aload pop
27
+% 20x
28
+  /.notdef /.notdef /quotesinglbase /.notdef /quotedblbase /ellipsis /dagger /daggerdbl
29
+  /.notdef /perthousand /Scaron /guilsinglleft /Sacute /Tcaron /Zcaron /Zacute
30
+  /.notdef /grave /acute /circumflex /tilde /bullet /endash /emdash
31
+  /.notdef /trademark /scaron /guilsinglright /sacute /tcaron /zcaron /zacute
32
+% 24x
33
+  /space /caron /breve /Lslash /currency /Aogonek /brokenbar /section
34
+  /dieresis /copyright /Scommaaccent /guillemotleft /logicalnot /hyphen /registered /Zdotaccent
35
+  /degree /plusminus /ogonek /lslash /acute /mu /paragraph /periodcentered
36
+  /cedilla /aogonek /scommaaccent /guillemotright /Lcaron /hungarumlaut /lcaron /zdotaccent
37
+% 30x
38
+  /Racute /Aacute /Acircumflex /Abreve /Adieresis /Lacute /Cacute /Ccedilla
39
+  /Ccaron /Eacute /Eogonek /Edieresis /Ecaron /Iacute /Icircumflex /Dcaron
40
+  /Dcroat /Nacute /Ncaron /Oacute /Ocircumflex /Ohungarumlaut /Odieresis /multiply
41
+  /Rcaron /Uring /Uacute /Uhungarumlaut /Udieresis /Yacute /Tcommaaccent /germandbls
42
+% 34x
43
+  /racute /aacute /acircumflex /abreve /adieresis /lacute /cacute /ccedilla
44
+  /ccaron /eacute /eogonek /edieresis /ecaron /iacute /icircumflex /dcaron
45
+  /dcroat /nacute /ncaron /oacute /ocircumflex /ohungarumlaut /odieresis /divide
46
+  /rcaron /uring /uacute /uhungarumlaut /udieresis /yacute /tcommaaccent /dotaccent
47
+256 packedarray .defineencoding

+ 73
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cet.ps View File

@@ -0,0 +1,73 @@
1
+%!PS
2
+% Set defaults for Ghostscript to match Adobe CPSI behaviour for CET
3
+% $Id: gs_cet.ps 10679 2010-02-01 00:02:04Z alexcher $
4
+
5
+% do this in the server level so it is persistent across jobs
6
+true 0 startjob not {
7
+  (*** Warning: CET startup is not in server default) = flush
8
+} if
9
+
10
+300 .sethiresscreen	% needed for language switch build since it
11
+			% processes gs_init.ps BEFORE setting the resolution
12
+
13
+0 array 0 setdash % CET 09-08 wants local setdash
14
+
15
+currentglobal true setglobal
16
+
17
+{
18
+  systemdict dup dup dup
19
+  /version (3017.102) put		% match CPSI 3017.102
20
+  /product (PhotoPRINT SE 5.0v2) put	% match CPSI 3017.102
21
+  /revision 0 put			% match CPSI 3017.103 Tek shows revision 5
22
+  /serialnumber 233640 put		% match CPSI 3017.102 Tek shows serialnumber 1401788461
23
+  systemdict /deviceinfo undef          % for CET 20-23-1
24
+} superexec
25
+
26
+{ } bind dup
27
+setblackgeneration
28
+setundercolorremoval
29
+0 array cvx readonly dup dup dup setcolortransfer
30
+
31
+% CPSI doesn't define "Localization" resource.
32
+/Localization /Category undefineresource
33
+
34
+% Redefine Font category to return -1 (unknown) VM usage
35
+% in all cases to avoid differences between hosts.
36
+/Font /Category findresource
37
+dup length dict copy 
38
+dup
39
+dup /.loadfontresource get
40
+dup length array copy cvx
41
+dup 1 0 put
42
+dup 7 -1 put
43
+/.loadfontresource exch put
44
+/Font exch /Category defineresource pop
45
+
46
+% Some previously compile time options such as USE_ADOBE_CMYK_RGB
47
+% and GS_CHAR_FILL are now dynamic. Force CPSI compatibility.
48
+true .setCPSImode
49
+
50
+setglobal
51
+
52
+% Remove all but 'letter' page size
53
+<<
54
+currentpagedevice /InputAttributes get
55
+1 1 2 index length 1 sub {
56
+  1 index exch undef
57
+} for
58
+/InputAttributes exch
59
+>>
60
+setpagedevice
61
+
62
+% Patch setsmoothness, currentsmoothness for a better view of shadings :
63
+userdict /.smoothness currentsmoothness put
64
+/setsmoothness { 
65
+   dup type dup /integertype eq exch /realtype eq or {
66
+     userdict /.smoothness 3 2 roll cvr put 
67
+   } {
68
+     /setsmoothness .systemvar /typecheck signalerror
69
+   } ifelse
70
+} bind odef
71
+/currentsmoothness { userdict /.smoothness get } bind odef % for 09-55.PS, 09-57.PS .
72
+
73
+false 0 startjob pop		% re-enter encapsulated mode

+ 856
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cff.ps View File

@@ -0,0 +1,856 @@
1
+%    Copyright (C) 1997, 1998, 1999, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cff.ps 9351 2009-01-13 22:17:21Z alexcher $
17
+% Loader for CFF (compressed) fonts, including OpenType CFFs.
18
+% The following are not implemented yet:
19
+%	Deleted entries in the Name Index
20
+%	Embedded PostScript
21
+%	Multiple Master fonts
22
+%	Chameleon fonts
23
+%	Synthetic fonts
24
+
25
+% ---------------- Font loading machinery ---------------- %
26
+
27
+% Augment the FONTPATH machinery so it recognizes OpenType CFF font sets.
28
+
29
+/.scanfontheaders where {
30
+  pop /.scanfontheaders [
31
+   .scanfontheaders aload pop (OTTO*)
32
+  ] def
33
+} if
34
+
35
+% Load a font file that might be an OpenType CFF font set.
36
+
37
+% <file> .loadfontfile -
38
+/.loadnonottofontfile /.loadfontfile load def
39
+/.loadfontfile {
40
+  dup 4 string .peekstring pop (OTTO) eq {
41
+		% If this is a font at all, it's an OpenType CFF font set.
42
+    .init_otto_font_file
43
+	% Use a random FontSet resource name.  ****** WRONG ******
44
+    realtime rand xor =string cvs exch //false //false
45
+    ReadData pop
46
+  } {
47
+		% Not a TrueType font.
48
+    .loadnonottofontfile
49
+  } ifelse
50
+} bind def
51
+
52
+% <file> .init_otto_font_file <file>
53
+/.init_otto_font_file {
54
+  /FontSetInit /ProcSet findresource begin
55
+  2 dict begin
56
+  /f exch def /cff null def
57
+  card32 pop card16 6 { next pop } repeat dup {
58
+		% Stack: numtables tablesleft
59
+    dup 0 eq {
60
+      pop pop /.loadottofontfile cvx /invalidfont signalerror
61
+    } if
62
+    f 4 string readstring pop (CFF ) eq { sub exit } if
63
+    f 12 string readstring pop pop 1 sub	% skip to next table
64
+  } loop
65
+		% Stack: tablesread
66
+  card32 pop card32 card32
67
+		% Stack: tablesread start length
68
+  exch 3 -1 roll 1 add 16 mul 12 add sub
69
+  f exch subfilefilter flushfile	% skip to start
70
+  f exch subfilefilter end
71
+} bind def
72
+
73
+53 dict begin
74
+
75
+% ---------------- Standard strings (actually names) ---------------- %
76
+
77
+/StandardStrings mark
78
+	% The initial StandardStrings that that denote characters are
79
+	% defined as a pseudo-Encoding.
80
+% 0
81
+  /CFFStandardStrings .findencoding aload pop
82
+% 379
83
+  (001.000)
84
+% 380
85
+  (001.001) (001.002) (001.003) /Black /Bold
86
+  /Book /Light /Medium /Regular /Roman
87
+  /Semibold
88
+.packtomark def
89
+
90
+% ---------------- Standard encodings ---------------- %
91
+
92
+/StandardEncodings [
93
+
94
+% StandardEncoding
95
+mark
96
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
97
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
98
+  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
99
+  17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
100
+  33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
101
+  49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
102
+  65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
103
+  81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 0
104
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
105
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
106
+  0 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110
107
+  0 111 112 113 114 0 115 116 117 118 119 120 121 122 0 123
108
+  0 124 125 126 127 128 129 130 131 0 132 133 0 134 135 136
109
+  137 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
110
+  0 138 0 139 0 0 0 0 140 141 142 143 0 0 0 0
111
+  0 144 0 0 0 145 0 0 146 147 148 149 0 0 0 0
112
+.packtomark
113
+
114
+% ExpertEncoding
115
+mark
116
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
117
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
118
+  1 229 230 0 231 232 233 234 235 236 237 238 13 14 15 99
119
+  239 240 241 242 243 244 245 246 247 248 27 28 249 250 251 252
120
+  0 253 254 255 256 257 0 0 0 258 0 0 259 260 261 262
121
+  0 0 263 264 265 0 266 109 110 267 268 269 0 270 271 272
122
+  273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288
123
+  289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 0
124
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
125
+  0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
126
+  0 304 305 306 0 0 307 308 309 310 311 0 312 0 0 313
127
+  0 0 314 315 0 0 316 317 318 0 0 0 158 155 163 319
128
+  320 321 322 323 324 325 0 0 326 150 164 169 327 328 329 330
129
+  331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346
130
+  347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362
131
+  363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378
132
+.packtomark
133
+
134
+] readonly def
135
+
136
+% ---------------- Standard Charsets ---------------- %
137
+
138
+% We include an explicit 0 at the beginning of each charset.
139
+
140
+/StandardCharsets [
141
+
142
+% ISOAdobe
143
+mark
144
+  0
145
+  1 1 228 { } for
146
+.packtomark
147
+
148
+% Expert
149
+mark
150
+  0
151
+  1 229 230 231 232 233 234 235 236 237 238 13 14 15 99 239
152
+  240 241 242 243 244 245 246 247 248 27 28 249 250 251 252 253
153
+  254 255 256 257 258 259 260 261 262 263 264 265 266 109 110 267
154
+  268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283
155
+  284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299
156
+  300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315
157
+  316 317 318 158 155 163 319 320 321 322 323 324 325 326 150 164
158
+  169 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341
159
+  342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357
160
+  358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373
161
+  374 375 376 377 378
162
+.packtomark
163
+
164
+% ExpertSubset
165
+mark
166
+  0
167
+  1 231 232 235 236 237 238 13 14 15 99 239 240 241 242 243
168
+  244 245 246 247 248 27 28 249 250 251 253 254 255 256 257 258
169
+  259 260 261 262 263 264 265 266 109 110 267 268 269 270 272 300
170
+  301 302 305 314 315 158 155 163 320 321 322 323 324 325 326 150
171
+  164 169 327 328 329 330 331 332 333 334 335 336 337 338 339 340
172
+  341 342 343 344 345 346
173
+.packtomark
174
+
175
+] readonly def
176
+
177
+% ---------------- Font loading ---------------- %
178
+
179
+% ------ Utilities ------ %
180
+
181
+/advance {	% <n> advance -
182
+  f cff eq { pos add /pos exch store } { pop } ifelse
183
+} bind def
184
+/next {		% - next <byte>
185
+  f read {
186
+    1 advance
187
+    CFFDEBUG { (  ) print dup = } if
188
+  } {
189
+    0
190
+    CFFDEBUG { (  Out of range access, assuming 0) = } if
191
+    /pdfformaterror where {
192
+      pop 
193
+      (   **** Warning: Out of range access to a CFF table, assuming 0.\n)
194
+      pdfformaterror
195
+    } if
196
+  } ifelse
197
+} bind def
198
+/next2 {	% - next2 <byte1> <byte2>
199
+  f read {
200
+    f read {
201
+      2 advance
202
+      CFFDEBUG { (  ) print 1 index =only (,) print dup = } if
203
+    } {
204
+      1 advance
205
+      CFFDEBUG { (  ) print dup = } if
206
+    } ifelse
207
+  } if
208
+} bind def
209
+/nextstring {	% <length> nextstring <string>
210
+  dup 0 eq {
211
+    pop ()
212
+  } {
213
+    string f exch readstring pop dup length advance
214
+    CFFDEBUG { (  ) print dup == } if
215
+  } ifelse
216
+} bind def
217
+/card8		% - card8 <card8>
218
+ /next load
219
+def
220
+/card16 {	% - card16 <card16>
221
+  next2 exch 8 bitshift add
222
+} bind def
223
+/card32 {	% - card32 <card32>
224
+  card16 16 bitshift card16 add
225
+} bind def
226
+/offsetprocs [
227
+  /card8 load
228
+  /card16 load
229
+  { card8 16 bitshift card16 add } bind
230
+  /card32 load
231
+] readonly def
232
+/offsetproc {	% <offsize> offsetproc <proc>
233
+  1 sub //offsetprocs exch get
234
+} bind def
235
+/offset {	% <offsize> offset <offset>
236
+  offsetproc exec
237
+} bind def
238
+/sid		% - <sid> sid
239
+  /card16 load
240
+def
241
+/Index {	% <name> Index <name> <array>
242
+  CFFDEBUG { (% reading Index: ) print dup = } if
243
+  mark card16
244
+  dup 0 ne {
245
+    1 exch next
246
+    dup 0 eq { 
247
+      pop       % skip incorrect index, bug 689854
248
+    } {
249
+      offsetproc dup exec pop exch {
250
+        dup exec dup 4 -1 roll sub 3 1 roll exch
251
+      } repeat
252
+    } ifelse pop
253
+  } if pop .packtomark
254
+  CFFDEBUG { (% Index lengths = ) print dup === } if
255
+  [ exch { nextstring } forall ] readonly
256
+} bind def
257
+/tokens {	% - tokens <num1> ... <op#> (op# = 12 means EOF)
258
+  {
259
+    f read not { 12 exit } if
260
+    CFFDEBUG { (..) print dup = } if
261
+    1 advance
262
+    dup 12 eq { pop next 32 add exit } if
263
+    dup 28 lt { exit } if
264
+    dup 32 lt {
265
+      28 sub {
266
+	{ card16 32768 xor 32768 sub }
267
+	{ 4 offset dup 16#7fffffff gt { -1 32 bitshift add } if }
268
+	{ tokenreal }
269
+	{ 31 exit }
270
+      } exch get exec
271
+    } {
272
+      dup 247 lt {
273
+	139 sub
274
+      } {
275
+	247 sub {
276
+	  { next 108 add }
277
+	  { next 364 add }
278
+	  { next 620 add }
279
+	  { next 876 add }
280
+	  { next 108 add neg }
281
+	  { next 364 add neg }
282
+	  { next 620 add neg }
283
+	  { next 876 add neg }
284
+	  % 255 is deliberately omitted and will cause a rangecheck
285
+	} exch get exec
286
+      } ifelse
287
+    } ifelse
288
+  } loop
289
+} bind def
290
+/tokenbuf 100 string def
291
+/tokenput {	% <index> <str> tokenput <index+length>
292
+  dup length 3 1 roll
293
+  tokenbuf 2 index 3 -1 roll putinterval add
294
+} bind def
295
+/tokenrealarray [
296
+ (0)(1)(2)(3)(4)(5)(6)(7)(8)(9)(.)(E)
297
+ (E-)
298
+ ()		% ignore the invalid value
299
+ (-)
300
+ { exit } bind
301
+] readonly def
302
+/tokenreal {	% - tokenreal <float>
303
+  0 {
304
+    next exch 1 index -4 bitshift tokenrealarray exch get exec tokenput
305
+		% We must leave the byte on the stack temporarily so that
306
+		% the exit will see a consistent stack state.
307
+    1 index 15 and tokenrealarray exch get exec tokenput exch pop
308
+  } loop
309
+  tokenbuf 0 3 -1 roll getinterval cvr exch pop
310
+} bind def
311
+/Dict {		% <opsdict> Dict -
312
+  /opdict exch store {
313
+    mark tokens
314
+    CFFDEBUG { (tokens: ) print ] dup === mark exch aload pop } if
315
+    opdict exch .knownget { exec } if cleartomark
316
+  } loop cleartomark
317
+} bind def
318
+/idstring {	% <sid> idstring <string|name>
319
+  dup 391 lt { //StandardStrings } { 391 sub strings } ifelse exch get
320
+} bind def
321
+/idname {	% <sid> idname <name>
322
+  idstring dup type /nametype ne { cvn } if
323
+} bind def
324
+/subfilefilter {	% <file> <length> subfilefilter <filter>
325
+	% SubFileDecode interprets a length of 0 as infinite.
326
+  dup 0 le { pop pop () 0 } if () /SubFileDecode filter
327
+} bind def
328
+
329
+% ------ Top dictionary ------ %
330
+
331
+/offput {	% <offset> <proc> offput -
332
+  1 index 0 le
333
+  CFFDEBUG { dup { (not ) print } if (queued: ) print 2 index =only ( ) print 1 index === } if
334
+  { pop pop
335
+  }
336
+  { currentdict exch aload length 1 add packedarray cvx
337
+      offsets 3 1 roll put
338
+  }
339
+  ifelse
340
+} bind def
341
+/queueput {	% <font> <proc> queueput -
342
+  16#7fffffff offsets { pop .min } forall
343
+  pos sub nextstring
344
+  3 1 roll aload length 2 add packedarray cvx
345
+  [ queued aload pop counttomark 2 add -1 roll ]
346
+  /queued exch store
347
+} bind def
348
+/printvk {	% <value> <key> printvk <value> <key>
349
+  CFFDEBUG { (\t% ) print dup =only ( = ) print 1 index === } if
350
+} bind def
351
+/xxput {	% <value> <key> <dict> xxput -
352
+  3 1 roll exch put
353
+} bind def
354
+/putfi {	% <value> <key> putfi -
355
+  printvk FontInfo xxput
356
+} bind def
357
+/xdef {		% <value> <key> xdef -
358
+  exch def
359
+} bind def
360
+/pxdef {	% <value> <key> pxdef -
361
+  printvk xdef
362
+} bind def
363
+/topdictops mark
364
+  12 { CFFDEBUG { (\t% EOD) = } if exit }
365
+  0 { idstring /version putfi }
366
+  1 { idstring /Notice putfi }
367
+  32 { idstring /Copyright putfi }
368
+  2 { idstring /FullName putfi }
369
+  3 { idstring /FamilyName putfi }
370
+  4 { idstring /Weight putfi }
371
+  33 { 0 ne /isFixedPitch putfi }
372
+  34 { /ItalicAngle putfi }
373
+  35 { /UnderlinePosition putfi }
374
+  36 { /UnderlineThickness putfi }
375
+  37 { /PaintType pxdef }
376
+  38 { /FontType pxdef }		% actually CharstringType
377
+  39 { counttomark array astore /FontMatrix pxdef }
378
+  13 { /UniqueID pxdef }
379
+  5 { counttomark array astore /FontBBox pxdef }
380
+  40 { /StrokeWidth pxdef }
381
+  14 { counttomark array astore /XUID pxdef }
382
+  15 {
383
+    /charset printvk pop
384
+    dup StandardCharsets length lt {
385
+      StandardCharsets exch get /charset xdef
386
+    } {
387
+      { queuecharset } offput
388
+    } ifelse
389
+  }
390
+  16 {
391
+    /Encoding printvk pop
392
+    dup StandardEncodings length lt {
393
+      /Encoding xdef
394
+    } {
395
+      { queueEncoding } offput
396
+    } ifelse
397
+  }
398
+  17 { { readCharStrings } offput }
399
+  18 { exch /readPrivate cvx 2 packedarray offput }
400
+	% CIDFont operators
401
+  62 {		% ROS, must be first in a CIDFont
402
+    currentdict /FontType undef
403
+    currentdict /Encoding undef
404
+    currentdict /FontMatrix undef
405
+    /CIDFontVersion 0 def
406
+    /CIDFontRevision 0 def
407
+    /CIDFontType 0 def
408
+    /CIDCount 8720 def % Default value defined in CFF spec.
409
+    3 dict begin
410
+    /Supplement pxdef
411
+    idstring dup type /nametype eq { .namestring } if /Ordering pxdef
412
+    idstring dup type /nametype eq { .namestring } if /Registry pxdef
413
+    /CIDSystemInfo currentdict end def
414
+  }
415
+  63 { /CIDFontVersion pxdef }
416
+  64 { /CIDFontRevision pxdef }
417
+  65 { /CIDFontType pxdef }
418
+  66 { /CIDCount pxdef }
419
+  67 { /UIDBase pxdef }
420
+  68 { { readFDArray } offput }
421
+  69 { { readFDSelect } offput }
422
+	% This operator only appears in a FDArray element.
423
+	% We don't really need it, so ignore an error.
424
+  70 { { idstring } .internalstopped { pop pop } { /FontName pxdef } ifelse }
425
+.dicttomark readonly def
426
+
427
+% readcharset and readFDSelect may require the length of CharStringArray,
428
+% but these structures may occur in the file before the CharStrings.
429
+% If that happens, use a hack: assume that all the data up to the next
430
+% queued read should be read.
431
+
432
+/charstringcount {	% <font> charstringcount <count> true
433
+			% <font> charstringcount <length> false
434
+  /CharStringArray .knownget {
435
+    length true
436
+  } {
437
+	% Hack: look for the next queued read.
438
+    16#7fffffff offsets { pop .min } forall
439
+    pos sub false
440
+  } ifelse
441
+} bind def
442
+
443
+/readCharStrings {	% <font> readCharStrings -
444
+  /CharStringArray Index put
445
+} bind def
446
+
447
+% ------ Charsets and encodings ------ %
448
+
449
+% Note: formats 1 and 2 can overflow the operand stack.
450
+% We'll fix this if it ever becomes necessary.
451
+/charsetcount {
452
+  charstringcount { 1 sub } { 2 idiv } ifelse
453
+} bind def
454
+/charsetformats [
455
+{ [ 0 3 -1 roll charsetcount { sid } repeat ]
456
+} bind
457
+{ [ 0 3 -1 roll charsetcount {
458
+    dup 0 eq { pop exit } if
459
+    sid card8 1 add 2 index .min { exch 1 sub 1 index 1 add } repeat pop
460
+  } loop ]
461
+} bind
462
+{ [ 0 3 -1 roll charsetcount {
463
+    dup 0 eq { pop exit } if
464
+    sid card16 1 add 2 index .min { exch 1 sub 1 index 1 add } repeat pop
465
+  } loop ]
466
+} bind
467
+] readonly def
468
+/queuecharset {		% <font> queuecharset -
469
+  { readcharset } queueput
470
+} bind def
471
+/readcharset {		% <data> <font> readcharset -
472
+  begin 0 () /SubFileDecode filter /f exch store
473
+  charsetformats next get currentdict exch exec /charset exch def end
474
+} bind def
475
+
476
+/encodingformats [
477
+{ 1 1 next { next exch Encoding 3 1 roll put } for
478
+} bind
479
+{ 1 next {
480
+    next next 1 add {
481
+			% Stack: gid code
482
+      Encoding 1 index 3 index put
483
+      exch 1 add exch 1 add
484
+    } repeat pop
485
+  } repeat pop
486
+} bind
487
+] readonly def
488
+/queueEncoding {	% <font> queueEncoding -
489
+  { readEncoding } queueput
490
+} bind def
491
+/readEncoding {		% <data> <font> readEncoding -
492
+  begin 0 () /SubFileDecode filter /f exch store
493
+  /Encoding [ 256 { /.notdef } repeat ] def
494
+  next encodingformats 1 index 127 and get exec
495
+  128 ge {
496
+			% Read supplementary encodings.
497
+    next {
498
+      Encoding next sid idname put
499
+    } repeat
500
+  } if end
501
+} bind def
502
+
503
+% ------ FDArray and FDSelect ------ %
504
+
505
+/readFDArray {		% <font> readFDArray -
506
+  /FDarray Index exch pop exch
507
+  2 dict begin /f null def begin
508
+  [ exch {
509
+    dup length subfilefilter /f exch store
510
+    10 dict begin
511
+    /FontType 2 def
512
+    /PaintType 0 def
513
+    /FontMatrix [0.001 0 0 0.001 0 0] def
514
+    /Private 20 dict def
515
+    //topdictops Dict currentdict end
516
+  } forall ] /FDArray xdef end end
517
+} bind def
518
+
519
+/fdselectformats [
520
+% Note: this procedure can overflow the operand stack.
521
+% We'll fix this if it ever becomes necessary.
522
+{ [ exch charstringcount pop { card8 } repeat ] } bind	% Format 0
523
+{ /FDSelect cvx /invalidfont signalerror } bind		% Format 1
524
+dup							% Format 2
525
+% The following procedure does not use excessive op-stack space.
526
+{ pop 65535 array card16 card16 exch			% Format 3
527
+  { % Stack: array previndex
528
+    card8 card16 
529
+    exch 1 index 4 -1 roll
530
+    exch 1 exch 1 sub
531
+    { 3 index exch 2 index put } for pop
532
+  } repeat
533
+  % now resize the array to the final index.
534
+  0 exch getinterval
535
+} bind
536
+] readonly def
537
+
538
+/readFDSelect {		% <font> readFDSelect -
539
+  begin fdselectformats next get currentdict exch exec /FDSelect exch def end
540
+} bind def
541
+
542
+
543
+% ------ Private dictionary ------ %
544
+
545
+/deltarray {		% -mark- <num1> ... deltarray <num1'> ...
546
+  0 counttomark 1 sub { counttomark -1 roll add dup } repeat pop
547
+  counttomark array astore
548
+} bind def
549
+
550
+/privatedictops mark
551
+  12 { CFFDEBUG { (\t% EOD) = } if exit }
552
+  6 { deltarray /BlueValues pxdef }
553
+  7 { deltarray /OtherBlues pxdef }
554
+  8 { deltarray /FamilyBlues pxdef }
555
+  9 { deltarray /FamilyOtherBlues pxdef }
556
+  41 { /BlueScale pxdef }
557
+  42 { /BlueShift pxdef }
558
+  43 { /BlueFuzz pxdef }
559
+  10 { 1 array astore /StdHW pxdef }
560
+  11 { 1 array astore /StdVW pxdef }
561
+  44 { deltarray /StemSnapH pxdef }
562
+  45 { deltarray /StemSnapV pxdef }
563
+  46 { 0 ne /ForceBold pxdef }
564
+  47 { /ForceBoldThreshold pxdef }
565
+  48 { /lenIV pxdef }
566
+  49 { /LanguageGroup pxdef }
567
+  50 { /ExpansionFactor pxdef }
568
+  51 { /initialRandomSeed pxdef }
569
+  19 { PrivateStart add { readSubrs } offput }
570
+  20 { /defaultWidthX pxdef }
571
+  21 { /nominalWidthX pxdef }
572
+	% Multiple Master fonts only
573
+  59 { /NDV pxdef }
574
+  60 { /CDV pxdef }
575
+  61 { /lenBuildCharArray pxdef }
576
+.dicttomark readonly def
577
+
578
+/readPrivate {		% <font> <size> readPrivate -
579
+  2 dict begin
580
+  f 3 1 roll exch       % f <size> <font> 
581
+  StringCache queued_offset known {
582
+    /PrivateStart queued_offset def
583
+  } {
584
+    /PrivateStart pos def
585
+    1 index 0 gt {
586
+      f 2 index string readstring pop
587
+    } {
588
+      ()
589
+    } ifelse
590
+    StringCache queued_offset 2 index put
591
+    0 () /SubFileDecode filter
592
+    /f exch store
593
+  } ifelse
594
+  dup /FontType .knownget not { 2 } if exch
595
+  /Private get begin
596
+		% Default lenIV to -1 even for Type 1 CharStrings.
597
+  2 ne { /lenIV -1 def } if
598
+  //privatedictops Dict end
599
+  exch /f exch store advance
600
+  end
601
+} bind def
602
+
603
+/readSubrs {		% <font> readSubrs -
604
+  /Subrs Index put
605
+} bind def
606
+
607
+% ------ Main program ------ %
608
+
609
+% Clean up after finishing a font.
610
+/cleanupFont {		% (currentdict) cleanupFont -
611
+		% Remove unwanted entries.
612
+  currentdict /charset undef
613
+  currentdict /CharStringArray undef
614
+} bind def
615
+
616
+% Update the Encoding and CharStrings for a real font.
617
+/finishFont {		% (currentdict) finishFont -
618
+		% Construct the real Encoding.
619
+		% The value of Encoding is either a number, for predefined
620
+		% encodings, or an array of mixed GIDs and names.
621
+  /Encoding mark Encoding
622
+  CFFDEBUG { (Encoding: ) print dup === flush } if
623
+  dup type /integertype eq {
624
+    StandardEncodings exch get { idname } forall
625
+  } {
626
+    {
627
+      dup type /integertype eq { charset exch get idname } if
628
+    } forall
629
+  } ifelse .packtomark def
630
+		% Construct the CharStrings.
631
+		% Note that they may only correspond to an initial
632
+		% subset of the charset.
633
+  /CharStrings charset length CharStringArray length .min dict def
634
+  CFFDEBUG {
635
+    charset length =only ( charset ) print
636
+    CharStringArray length =only ( CharStringArray) =
637
+    charset == flush
638
+  } if
639
+  0 1 CharStrings maxlength 1 sub {
640
+    dup CharStringArray exch get
641
+    exch charset exch get idstring CharStrings xxput
642
+  } for
643
+  cleanupFont
644
+} bind def
645
+
646
+% Replace CharStrings with GlyphDirectory for a CIDFont;
647
+% Move GlobalSubrs to descendent fonts.
648
+/finishCIDFont {	% (currentdict) finishCIDFont -
649
+		% Construct the GlyphDirectory, similar to CharStrings.
650
+  /FDBytes FDArray length 1 gt { 1 } { 0 } ifelse def
651
+  /GlyphDirectory charset length CharStringArray length .min dict def
652
+  CFFDEBUG {
653
+    charset length =only ( charset ) print
654
+    CharStringArray length =only ( CharStringArray) =
655
+    charset == flush
656
+  } if
657
+  0 1 GlyphDirectory maxlength 1 sub {
658
+    dup CharStringArray exch get
659
+		% If there is more than one FDArray entry, add the font
660
+		% index to the beginning of each charstring.
661
+    FDBytes 1 eq {
662
+      FDSelect 2 index get
663
+      1 string dup 0 4 -1 roll put exch concatstrings
664
+    } if
665
+    exch charset exch get GlyphDirectory xxput
666
+  } for
667
+
668
+  Private /GlobalSubrs .knownget {
669
+    FDArray {
670
+    /Private get /GlobalSubrs 2 index put
671
+    } forall
672
+    pop
673
+    Private /GlobalSubrs undef
674
+  } if
675
+
676
+		% Clean up.
677
+  currentdict /FDSelect undef
678
+  cleanupFont
679
+} bind def
680
+
681
+% PDF may load OpenType font containing ordinary CFF data as a CIDFont.
682
+% Convert the ordinary font to a CIDFont.
683
+/makeCIDFont {        % (currentdict) finishCIDFont -
684
+  /CIDFontType 0 def
685
+  /FDBytes 0 def
686
+  /GDBytes 0 def
687
+  /CIDMapOffset 0 def
688
+
689
+  /CIDSystemInfo 3 dict begin  % bogus
690
+    /Registry   (Adobe) def
691
+    /Ordering   (Identity) def
692
+    /Supplement 0 def
693
+  currentdict end def
694
+
695
+  /FDArray 4 dict begin
696
+    /FontMatrix dup load { 1000 0 0 1000 0 0 } matrix concatmatrix def
697
+    /Private    dup load def
698
+    /FontType   dup load def
699
+    /PaintType  dup load def
700
+  currentdict end 1 array astore def
701
+
702
+  /FontType 9 def
703
+
704
+  /GlyphDirectory CharStringArray def
705
+  /CIDCount GlyphDirectory length def
706
+
707
+  currentdict /Private undef
708
+  currentdict /Encoding undef
709
+  currentdict /CharStrings undef
710
+  currentdict /UniqueID undef
711
+  currentdict /XUID undef
712
+  cleanupFont
713
+} bind def
714
+
715
+% We need to pass the file as a parameter for the sake of the PDF
716
+% interpreter. Also for the sake of PDF, a flag forces the font
717
+% to be defined as <resname> instead of the name embedded in the data.
718
+% This is needed for subsetted fonts; it is valid if the CFF
719
+% contains only a single font.
720
+% Finally, PDF interpreter may request creation of CIDFont out of an
721
+% ordinary CFF font.
722
+/StartData {          % <resname> <nbytes> StartData -
723
+  currentfile exch subfilefilter //false //false ReadData pop
724
+} bind def
725
+/ReadData {           % <resname> <file> <forceresname> <forcecid> ReadData <fontset>
726
+	% Initialize.
727
+
728
+  30 dict begin
729
+  /forcecidfont exch def
730
+  /forceresname exch def
731
+  /cff exch def
732
+  /pos 0 def
733
+  /resname exch cvlit def
734
+  /DEBUG CFFDEBUG def	% bring the binding closer
735
+  /StringCache 1 dict def % Private DICT may be reused.
736
+
737
+	% Read the header.
738
+
739
+  /f cff def
740
+  /vmajor next def
741
+  /vminor next def
742
+  /hdrsize next def
743
+  /aoffsize next def
744
+  hdrsize 4 gt {
745
+    hdrsize 4 sub dup advance
746
+    f exch () /SubFileDecode filter flushfile
747
+  } if
748
+
749
+	% Read the Indexes.
750
+
751
+  /names Index def
752
+  /topdicts Index def
753
+  /strings Index def
754
+  /gsubrs Index def
755
+
756
+	% Read the top Dicts.
757
+
758
+  /offsets 50 dict def
759
+  /queued [] def
760
+  /opdict null def		% reserve a slot
761
+  /fonts [ topdicts {
762
+    0 () /SubFileDecode filter /f exch def
763
+    40 dict begin
764
+		% Preload defaults that differ from PostScript defaults,
765
+		% or that are required.
766
+      /FontType 2 def
767
+      /PaintType 0 def
768
+      /FontMatrix [0.001 0 0 0.001 0 0] def
769
+      /charset StandardCharsets 0 get def
770
+      /Encoding 0 def
771
+      /FontInfo 10 dict
772
+	dup /UnderlinePosition -100 put
773
+	dup /UnderlineThickness 50 put
774
+      def
775
+      /Private 20 dict
776
+	gsubrs length 0 ne { dup /GlobalSubrs gsubrs put } if
777
+      def
778
+      //topdictops Dict
779
+    currentdict end
780
+  } forall ] def
781
+
782
+	% Read other tables with queued offsets.
783
+        % We process these in order so we can advance if needed.
784
+	% The CFF file may not be positionable.
785
+  {		% outer loop since offsets may be updated when processing
786
+    CFFDEBUG { (offsets: ) print [ offsets { pop } forall ] == } if
787
+    [ offsets { pop } forall ] { lt } .sort	% process in order of appearance
788
+    { 
789
+      CFFDEBUG { (queued offset: ) print dup =print flush (, current pos=) print pos = } if
790
+      /queued_offset 1 index def
791
+      StringCache 1 index .knownget {
792
+        /f exch 0 () /SubFileDecode filter def
793
+      } {
794
+        /f cff def
795
+        dup pos ne { dup pos sub nextstring pop } if	% negative advance will cause error
796
+      } ifelse
797
+      offsets exch 2 copy get 3 1 roll undef
798
+      CFFDEBUG { (exec queued: ) print dup == } if
799
+      exec
800
+    } forall
801
+    offsets length 0 eq { exit } if
802
+  } loop
803
+
804
+	% Process out-of-order tables.
805
+
806
+  CFFDEBUG { queued length =only ( queued) = flush } if
807
+  queued { exec } forall
808
+
809
+	% Update Encoding and CharStrings.
810
+
811
+  fonts {
812
+    begin
813
+    currentdict /CIDFontType known {
814
+      finishCIDFont
815
+    } {
816
+      forcecidfont //makeCIDFont //finishFont ifelse
817
+    } ifelse
818
+    end
819
+  } forall
820
+
821
+	% Wrap up.
822
+
823
+  resname mark 0 1 fonts length 1 sub {
824
+    CFFDEBUG { dup =only ( ) print flush } if
825
+    dup names exch get
826
+    forceresname { pop resname } if
827
+    CFFDEBUG { dup == flush } if
828
+    exch fonts exch get
829
+    dup /CIDFontType known {
830
+		% This is a CIDFont.
831
+      dup /CIDFontName 3 index put
832
+      1 index exch /CIDFont defineresource
833
+    } {
834
+		% This is a font.
835
+      dup /FontName 3 index put
836
+      1 index exch definefont
837
+    } ifelse
838
+  } for .dicttomark
839
+  end		% temporary dict
840
+  end		% FontSetInit ProcSet
841
+  /FontSet defineresource
842
+
843
+} bind def
844
+
845
+% ---------------- Resource category definition ---------------- %
846
+
847
+currentdict end readonly
848
+
849
+languagelevel exch 2 .setlanguagelevel
850
+
851
+/FontSet /Generic /Category findresource dup length dict .copydict
852
+/Category defineresource pop
853
+
854
+/FontSetInit exch /ProcSet defineresource pop
855
+
856
+.setlanguagelevel

+ 452
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidcm.ps View File

@@ -0,0 +1,452 @@
1
+%    Copyright (C) 2000 Artifex Software, Inc.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cidcm.ps 9164 2008-10-17 13:44:34Z alexcher $
17
+% Extending Font resource category with CIDFont-CMap fonts.
18
+
19
+languagelevel 2 .setlanguagelevel currentglobal true setglobal
20
+
21
+
22
+% In the comments below, 'CSI' is an abbreviation/acronym for CIDSystemInfo.
23
+% We pre-scan resource files to retrieve the CSI from them.
24
+% First we define a hidden procset .prs_dict containing
25
+% necessary variables and procedures.
26
+% Then we redefine the old /Font category using this procset.
27
+
28
+% We maintain internal caches for the CSI values retrieved from
29
+% resource files. This supposes that document doesn't uninstall
30
+% resource files. To disable caching, set enable_cache to false.
31
+
32
+% We assume that names starting with '.prs' do not appear in resource files.
33
+% If this causes any problem, this prefix should be systematically changed
34
+% in this file.  ('prs' is an abbreviation for 'prescan'.)
35
+
36
+25 dict begin
37
+
38
+% Define local variables :
39
+
40
+/.prs_dict currentdict def       % self-reference (constant)
41
+/.prs_empty 0 dict readonly def  
42
+/path_buffer 8192 string def
43
+/name_buffer 1024 string def
44
+/minus (-) 0 get def             % character code constant for '-'
45
+/period (.) 0 get def            % character code constant for '.'
46
+/CMap 10 dict def                % CSI cache for CMaps
47
+/CIDFont 10 dict def             % CSI cache for CIDFonts
48
+/enable_cache true def           % set false to disable cache
49
+
50
+% The folloving variables are just placeholders for ones to be set
51
+% dynamically :
52
+/.prsFile 0 def                   % file to prescan
53
+/.prsResult 0 def                 % result of prescan
54
+/.prsDictCount 0 def              % save the dictionary stack depth
55
+
56
+% Define a dummy CIDInit procset to use while pre-scanning :
57
+
58
+/DummyCIDInit 15 dict 
59
+begin
60
+
61
+  /begincmap {} def
62
+  /usecmap {pop} bind def
63
+
64
+  {stop} bind
65
+  [ /begincodespacerange /endcodespacerange /beginnotdefchar /endnotdefchar
66
+    /beginnotdefrange /endnotdefrange /begincidchar /endcidchar /begincidrange 
67
+    /endcidrange /endcmap /usefont /StartData
68
+  ] {
69
+    1 index def
70
+  } bind forall
71
+  pop
72
+
73
+currentdict end def
74
+
75
+% Define a local 'findresource' for pre-scanning :
76
+% (it returns the dummy CIDInit instead of the regular CIDInit ProcSet)
77
+
78
+/findresource { % <InstName> <CatName> findresource <inst>
79
+  2 copy /ProcSet eq exch             % /InstName /CatName bool /InstName
80
+  /CIDInit eq and {
81
+    pop pop //DummyCIDInit
82
+  } {
83
+    //findresource exec
84
+  } ifelse
85
+} bind def
86
+
87
+% Define procedures for pre-scanning :
88
+
89
+/StopIfCSIDefined {   % - StopIfCSIDefined -
90
+  
91
+  % Check if the dictionary stack contains a dictionary containing /CIDSystemInfo. 
92
+  % The search is limited to the top .prsDictCount dictionaries in the stack.
93
+  % If so, retrieve the CSI, and execute stop to terminate the pre-scanning of the file.
94
+  % Otherwise, do nothing, so the pre-scanning continues.
95
+
96
+  countdictstack //.prs_dict /.prsDictCount get sub dup {
97
+    currentdict /CIDSystemInfo .knownget {
98
+      //.prs_dict exch /.prsResult exch put
99
+      stop
100
+    } if
101
+    currentdict exch end
102
+  } repeat {
103
+    begin
104
+  } repeat
105
+} bind def
106
+
107
+/PrescanFile {     % - PrescanFile -
108
+  { //.prs_dict /.prsFile get token {      
109
+      dup type                          % token type
110
+      dup /nametype eq exch /operatortype eq or {
111
+        dup xcheck {
112
+          exec
113
+          //StopIfCSIDefined exec
114
+        } if
115
+      } if
116
+    } {
117
+      stop
118
+    } ifelse
119
+  } loop
120
+} bind odef
121
+
122
+/GetCIDSystemInfoFromFile { % <file> GetCIDSystemInfoFromFile <CSI>
123
+  
124
+  % This procedure reads resource files with 'token',
125
+  % executing the tokens untill /CIDSystemInfo appears to be defined.
126
+  % Normally the resource file creates a new dictionary on
127
+  % dictionary stack and defines /CIDSystemInfo in it.
128
+  %
129
+  % Returns an empty dictionary if no CIDSystemInfo is found.
130
+
131
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile beg) = } if
132
+  //.prs_dict begin
133
+  /.prsFile exch def
134
+  /.prsResult //.prs_empty def
135
+  /.prsDictCount countdictstack def
136
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile will PrescanFile.) = } if
137
+  { //PrescanFile } stopped pop
138
+  //.prs_dict /.prsResult get
139
+  end
140
+  RESMPDEBUG { (cidcm GetCIDSystemInfoFromFile end) = } if
141
+} bind def
142
+
143
+/GetCIDSystemInfo {     % <InstName> <CatName> GetCIDSystemInfo <CSI>
144
+  
145
+  % Retrieve CSI, using caches.
146
+
147
+  RESMPDEBUG { (cidcm GetCIDSystemInfo beg) = } if
148
+  /Category findresource begin                % /InstName
149
+  dup ResourceStatus 
150
+  {
151
+    pop 2 lt {
152
+      FindResource /CIDSystemInfo .knownget not {
153
+        //.prs_empty
154
+      } if                                    % CSI
155
+    } {                                       % /InstName
156
+      currentdict /GetCIDSystemInfoFromMap .knownget {
157
+        exec
158
+      } if
159
+      dup type /nametype eq
160
+      {
161
+        RESMPDEBUG { (cidcm GetCIDSystemInfo got a name.) = } if
162
+        //.prs_dict Category get              % /InstName CSIs
163
+        dup 2 index known
164
+        //enable_cache and {
165
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from cache.) = } if
166
+          exch get                            % CSI
167
+        } {
168
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from file.) = } if
169
+          exch                                % CSIs /InstName
170
+          dup //path_buffer ResourceFileName  % CSIs /InstName (path)
171
+          RESMPDEBUG { (cidcm GetCIDSystemInfo from file ) print dup = } if
172
+          currentglobal exch true setglobal   % CSIs /InstName g (path)
173
+          mark exch                           % CSIs /InstName g [ (path)
174
+          { (r) file } stopped {
175
+            cleartomark //.prs_empty
176
+          } {
177
+            exch 1 index                      % CSIs /InstName g file [ file
178
+            //GetCIDSystemInfoFromFile stopped {
179
+              cleartomark closefile //.prs_empty
180
+            } {
181
+              exch pop exch closefile
182
+            } ifelse
183
+          } ifelse                            % CSIs /InstName g CSI
184
+          exch setglobal                      % CSIs /InstName CSI
185
+          dup 4 1 roll                        % CSI CSIs /InstName CSI
186
+          put                                 % CSI
187
+          RESMPDEBUG {
188
+            (cidcm GetCIDSystemInfo got from file : <<) print
189
+            dup { exch //=string cvs print ( ) print
190
+                       //=string cvs print ( ) print
191
+            } forall
192
+            (>>) =
193
+          } if
194
+        } ifelse
195
+      } if
196
+    } ifelse
197
+  } {
198
+    pop //.prs_empty
199
+  } ifelse
200
+  end
201
+  RESMPDEBUG { (cidcm GetCIDSystemInfo end) = } if
202
+} bind def
203
+
204
+/IsCompatibleCSI {  % <CSI-M> <CSI-F> IsCompatibleCSI <bool>
205
+  
206
+  % The CSI in a CIDFont may be an array, a dict, or null.
207
+  % If it is an array, it must be of 1 element, which is a dict.
208
+  % In this case the dict is used for testing the compatibility.
209
+  % Two dicts are compatible iff they contain same /Ordering and /Registry.
210
+  % Identity CMap is compatible with any CIDFont.
211
+
212
+  exch                                  % CSI-F CSI-M
213
+  { dup type /arraytype eq {
214
+      dup length 1 ne {
215
+        pop pop //false exit
216
+      } if
217
+      0 get
218
+    } if                                % CSI-F CSI-M
219
+    dup type /dicttype ne {
220
+      pop pop //false exit
221
+    } if                                % CSI-F <<CSI-M>>
222
+    exch                                % <<CSI-M>> CSI-F
223
+    dup type /dicttype ne {
224
+      pop pop //false exit
225
+    } if                                % <<CSI-M>> <<CSI-F>>
226
+    dup /Ordering .knownget {
227
+      /Identity eq {
228
+        pop pop //true exit
229
+      } if
230
+    } if
231
+    //true                              % <<CSI-M>> <<CSI-F>> bEQ
232
+    [/Registry /Ordering] {                    
233
+      2 index 1 index .knownget not {
234
+        1234567
235
+      } if                              % <<CSI-M>> <<CSI-F>> bEQ /key vF
236
+      exch                              % <<CSI-M>> <<CSI-F>> bEQ vF /key
237
+      4 index exch .knownget not {
238
+        7654321
239
+      } if                              % <<CSI-M>> <<CSI-F>> bEQ vF vM
240
+      eq and                            % <<CSI-M>> <<CSI-F>> bEQ
241
+    } forall
242
+    exch pop exch pop                   % bEQ
243
+    exit
244
+  } loop
245
+} bind def
246
+
247
+/IsWellComposed {     % <CIDFontName> <CMapName> IsWellComposed <bool>
248
+  
249
+  % Check if the given CIDFont and CMap have compatible CSIs.
250
+  exch                                  % /CMapName /CIDFontName
251
+  /CIDFont //GetCIDSystemInfo exec      % /CMapName CSI-F
252
+  dup type /dicttype eq {
253
+    dup length 0 ne {                          
254
+      exch                              % CSI-F /CMapName
255
+      /CMap //GetCIDSystemInfo exec     % CSI-F CSI-M
256
+      //IsCompatibleCSI exec            % bool
257
+    } {
258
+      pop pop false
259
+    } ifelse
260
+  } {
261
+    pop pop false
262
+  } ifelse
263
+} bind def
264
+
265
+/IsComposedFont {   % <FontName> IsComposedFont <CIDFontName> <CMapName> true
266
+                    % <FontName> IsComposedFont false
267
+  
268
+  % Check if the given font name may be decomposed into CIDFont.CMap, CIDFont-CMap
269
+  % or into CIDFont--CMap, such that CIDFont and CMap have compatible CSIs.
270
+                                        % FontName
271
+  dup type /stringtype ne {
272
+    //name_buffer cvs
273
+  } if                                  % (FontName)
274
+  { dup length 2 sub -1 1 {
275
+                                        % (FontName) i
276
+      2 copy get dup //minus eq exch //period eq or {                
277
+        2 copy 2 copy                   % (FontName) i (FontName) i (FontName) i
278
+        2 copy get //minus eq {
279
+          2 copy 1 sub get //minus eq {
280
+            1 sub
281
+          } if
282
+        } if                            % (FontName) i (FontName) i (FontName) i0
283
+        0 exch getinterval cvn          % (FontName) i (FontName) i /CIDFontName
284
+        3 1 roll                        % (FontName) i /CIDFontName (FontName) i
285
+        1 add dup                       % (FontName) i /CIDFontName (FontName) i1 i1
286
+        5 index length                  % (FontName) i /CIDFontName (FontName) i1 i1 l
287
+        exch sub getinterval cvn        % (FontName) i /CIDFontName /CMapName
288
+        2 copy //IsWellComposed exec {  % (FontName) i /CIDFontName /CMapName 
289
+          4 2 roll pop pop              % /CIDFontName /CMapName
290
+          stop
291
+        } if
292
+        pop pop pop
293
+      } {
294
+        pop
295
+      } ifelse                          % (FontName)
296
+    } for
297
+    pop
298
+  } stopped
299
+} bind def
300
+
301
+/ComposeName { % <CIDFont> <CMap> <scr> ComposeName <CIDFont-CMap>
302
+  dup dup 5 2 roll                        % (scr) (scr) /CIDFont /CMap (scr)
303
+  3 2 roll exch cvs length dup            % (scr) (scr) /CMap l0 l0
304
+  4 -1 roll exch //minus put              % (scr) /CMap l0
305
+  1 add dup                               % (scr) /CMap l1 l1
306
+  3 index dup length                      % (scr) /CMap l1 l1 (scr) L
307
+  2 index sub                             % (scr) /CMap l1 l1 (scr) LT
308
+  3 2 roll                                % (scr) /CMap l1 (scr) LT l1
309
+  exch getinterval                        % (scr) /CMap l1 (scrT)
310
+  3 2 roll exch cvs length                % (scr) l1 l2
311
+  add 0 exch getinterval                  % (CIDFont-CMap)
312
+} bind def
313
+
314
+% Redefine the /Font category with CIDFont-CMap construction :
315
+
316
+% The following code supposes that the following names are not
317
+% defined in the old /Font category dictionary :
318
+% /IsComposedFont, /IsWellComposed .
319
+
320
+
321
+/Font /Category findresource dup length dict copy begin
322
+
323
+/FindResource {  % <InstName> FindResource <inst>
324
+  dup //ResourceStatus exec {
325
+    pop pop //FindResource exec
326
+  } {                                                
327
+    dup //IsComposedFont exec {          % /FontName /CIDFontName /CMapName 
328
+      exch [ exch ] composefont          % inst
329
+    } {
330
+      //FindResource exec
331
+    } ifelse
332
+  } ifelse
333
+} bind def
334
+
335
+/ResourceStatus {  % <InstName> ResourceStatus <nStatus> <nSize> true
336
+                   % <InstName> ResourceStatus false
337
+  dup //ResourceStatus exec {                    
338
+    3 2 roll pop true                     % nStatus nSize true
339
+  } {
340
+    //IsComposedFont exec {               % /CIDFontName /CMapName 
341
+      /CMap resourcestatus {              % /CIDFontName nStatusM nSizeM 
342
+        exch pop exch                     % nSizeM /CIDFontName 
343
+        /CIDFont resourcestatus {         % nSizeM nStatusF nSizeF 
344
+          exch pop                        % nSizeF nSizeM
345
+          dup 0 ge {
346
+            exch dup 0 ge {
347
+              add
348
+            } {
349
+              exch pop
350
+            } ifelse
351
+          } {
352
+            pop
353
+          } ifelse                        % nSize
354
+          2 exch true                     % nStatus nSize true
355
+        } {                        
356
+          pop pop pop false  % work around buggy resource file
357
+        } ifelse
358
+      } {                            
359
+        pop pop pop false    % work around buggy resource file
360
+      } ifelse
361
+    } {
362
+      false
363
+    } ifelse
364
+  } ifelse
365
+} bind def
366
+
367
+/ResourceForAll { % <template> <proc> <scratch> ResourceForAll - 
368
+
369
+  % We suppose that the resourceforall procedure does not 
370
+  % define or install new fonts, CMaps, and/or CIDFonts.
371
+
372
+  % First we create 3 temporary dictionaries to store temporary data
373
+  % about fonts, CMaps and CIDFonts.
374
+  % These dictionaries must be created dynamically, to allow for a possible 
375
+  % recursive call to resourceforall from the resourceforall procedure.
376
+  currentglobal false setglobal
377
+  20 dict 20 dict 20 dict                  % (templ) proc (scr) g <<CIDFont>> <<CMap>> <<Fonts>>
378
+  
379
+
380
+  % Store resource identifiers into local dictionaries
381
+  % A resource instance can have a key that is not a name or a string. In this
382
+  % case, resourceforall passes the key directly to proc instead of copying it
383
+  % into the scratch string. This case can arise only for a resource instance
384
+  % defined in virtual memory by a previous defineresource
385
+
386
+  % Discard non-string keys of CIDFont and CMap because <CIDFontName>-<CMapName>
387
+  % is only defined for names.
388
+
389
+  { /.DisableResourceOrdering pop % gs_resmp accesses this through execstack - don't remove !
390
+
391
+    6 index [ 2 index {exch //null put} aload pop ] cvx bind 6 index //ResourceForAll exec
392
+
393
+    (*) [ 3 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
394
+        ] cvx bind 6 index /CMap resourceforall
395
+
396
+    (*) [ 4 index {exch dup type /stringtype eq { cvn dup put } { pop pop } ifelse } aload pop
397
+        ] cvx bind 6 index /CIDFont resourceforall
398
+
399
+    exit
400
+  } loop % This loop is a pattern for execstack_lookup - don't remove !
401
+  4 -1 roll setglobal                     % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
402
+
403
+  %% Make the list of fonts in the form (/Name status) :
404
+
405
+                                          % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
406
+  dup {                                              
407
+    pop dup
408
+    //ResourceStatus exec {                        
409
+      pop 2 index                         % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>> /Name nStatus <<Font>>
410
+      3 1 roll put                        % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
411
+    } {
412
+      pop
413
+    } ifelse
414
+  } forall                                % (templ) proc (scr) <<CIDFont>> <<CMap>> <<Fonts>>
415
+ 
416
+  %% Add CIDFont-CMap to it (filtering duplicates) :
417
+ 
418
+  3 2 roll  {                                        
419
+    3 index {                                        
420
+      3 1 roll                            % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /CIDFont /CMap
421
+      6 index //ComposeName exec          % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap (Font)
422
+      dup 8 index .stringmatch {              
423
+        cvn                               % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font
424
+        dup 4 index exch known {
425
+          pop pop
426
+        } {                                            
427
+          2 index                         % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CMap /Font /CIDFont
428
+          4 2 roll                        % (templ) proc (scr) <<CMap>> <<Font>> /Font /CIDFont /CIDFont /CMap
429
+          //IsWellComposed exec {                
430
+            exch 2 index exch 2 put       % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont
431
+          } {
432
+            exch pop
433
+          } ifelse
434
+        } ifelse
435
+      } {
436
+        pop pop
437
+      } ifelse
438
+      dup                                 % (templ) proc (scr) <<CMap>> <<Font>> /CIDFont /CIDFont
439
+    } forall
440
+    pop pop                               % (templ) proc (scr) <<CMap>> <<Font>>
441
+  } forall                                % (templ) proc (scr) <<CMap>> <<Font>>
442
+  exch pop                                % (templ) proc (scr) <<Font>>
443
+  4 3 roll pop                            % proc (scr) <<Font>>
444
+
445
+  % Make the enumerator and apply it :
446
+  /MappedCategoryRedefiner /ProcSet findresource /MakeResourceEnumerator get exec exec
447
+} bind def
448
+
449
+
450
+currentdict end /Font exch /Category defineresource pop
451
+end
452
+setglobal .setlanguagelevel

+ 224
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_ciddc.ps View File

@@ -0,0 +1,224 @@
1
+%    Copyright (C) 1994, 1996, 1997, 1998, 1999, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_ciddc.ps 9834 2009-07-03 09:27:02Z ken $
17
+% Define SubstCID, Decoding and CIDDecoding resource categories and related procsets.
18
+
19
+languagelevel 2 .setlanguagelevel
20
+currentglobal true setglobal
21
+
22
+%----------------ParseDecoding procset----------------------------
23
+
24
+/ParseDecoding <<
25
+
26
+/Parse    % <resource_name> <num_tokens> Parse -
27
+{ dict begin                                  % /ResName
28
+  0                                           % /ResName nCode
29
+  { currentfile token not {
30
+      exit
31
+    } if                                      % /ResName nCode token
32
+    dup type /integertype eq {                % /ResName nCode
33
+       exch pop
34
+    } {
35
+      1 index def                             % /ResName nCode
36
+    } ifelse
37
+  } loop                                      % /ResName nCode
38
+  pop                                         % /ResName
39
+  currentdict end /Decoding                   % /ResName <<inst>> /Decoding
40
+  defineresource pop
41
+} bind
42
+
43
+>> /ProcSet defineresource pop
44
+
45
+%----------------Decoding category----------------------------
46
+
47
+/Generic /Category findresource dup length dict copy
48
+dup /InstanceType /dicttype put
49
+/Decoding exch /Category defineresource pop
50
+
51
+%----------------ParseCMap_Inverse procset----------------------------
52
+
53
+/ParseCMap_Inverse <<
54
+  /findresource { pop } bind
55
+  /defineresource { pop pop } bind
56
+  /dict {}
57
+  /def { pop pop } bind
58
+  /dup null
59
+  /begin { pop } bind
60
+  /end {}
61
+  /currentdict null
62
+  /CMapName null
63
+  /usecmap { pop } bind
64
+  /begincmap {}
65
+  /endcmap {}
66
+  /begincodespacerange { pop mark } bind
67
+  /endcodespacerange { cleartomark } bind
68
+  /beginnotdefrange { pop mark } bind
69
+  /endnotdefrange { cleartomark } bind
70
+  /beginbfchar { pop mark } bind
71
+  /endbfchar { pop mark } bind
72
+  /beginbfrange { begincidrange }
73
+  /endbfrange { endcidrange }
74
+  /begincidchar { beginbfchar }
75
+  /endcidchar { endbfchar }
76
+  /begincidrange { pop mark } bind
77
+  /endcidrange  { cleartomark } bind
78
+>>  % Just keep it on stack for a while.
79
+
80
+% Now we define another dict for local binding, than merge it with the previous one :
81
+dup length 5 add dict begin
82
+
83
+  /.Ranges 40 dict def % Key = CID/256, value = array of 256 integer codes.
84
+  //.Ranges /CIDCount 0 put
85
+
86
+  /.StringToInt     % <string> .StringToInt <integer>
87
+  { 0 exch { exch 8 bitshift add } forall
88
+  } bind def
89
+
90
+  /.SetCouple    % <I> <b> .SetCouple -
91
+  { exch                                    % b I
92
+    dup 256 idiv                            % b I I0
93
+    dup //.Ranges exch known not {
94
+      dup //.Ranges exch 256 array put
95
+    } if                                    % b I I0
96
+    //.Ranges exch get                      % b I [Range]
97
+    exch 256 mod                            % b [Range] I1
98
+    2 copy get                              % b [Range] I1 e
99
+    dup //null ne {
100
+      % We've got char code duplicates for same CID.
101
+      dup type /integertype eq {
102
+        4 3 roll                            % [Range] I1 e b
103
+        2 array astore put                  %
104
+      } {
105
+        dup length 1 add dup dup array dup  % b [Range] I1 D l l D' D'
106
+        3 2 roll 0 exch getinterval         % b [Range] I1 D l D' D''
107
+        4 3 roll exch copy pop              % b [Range] I1 l D'
108
+        dup 3 2 roll 1 sub                  % b [Range] I1 D' D' l-1
109
+        6 5 roll                            % [Range] I1 D' D' l-1 b
110
+        put put                             %
111
+      } ifelse
112
+    } {
113
+      pop 3 2 roll put                      %
114
+    } ifelse
115
+  } bind def
116
+
117
+  /endcidrange
118
+  { % Writes the inversed CMap to .Ranges
119
+    counttomark 3 idiv {                    % (b) (e) I
120
+      exch .StringToInt                     % (b) I e
121
+      3 2 roll .StringToInt                 % I e b
122
+      % Note : this code does't handle multidimentional CID ranges.
123
+      % fixme : optimize below.
124
+      dup 3 2 roll exch sub 1 add           % I b d
125
+      { 2 copy //.SetCouple exec            % I b
126
+        1 add exch 1 add exch
127
+      } repeat                              % I b
128
+      pop                                   % I
129
+      dup //.Ranges /CIDCount get gt {      % I
130
+        dup //.Ranges exch /CIDCount exch put
131
+      } if                                  % I
132
+      pop
133
+    } repeat
134
+    pop % mark
135
+  } bind def
136
+
137
+  /.GetCIDDecoding         % - .GetCIDDEcoding <dict>
138
+  { //.Ranges dup length dict copy
139
+    //.Ranges //.PurgeDict exec
140
+    //.Ranges /CIDCount 0 put
141
+  } bind def
142
+
143
+currentdict end
144
+exch copy % Merge the dicts - see above.
145
+/ProcSet defineresource pop
146
+
147
+%----------------CIDDecoding category----------------------------
148
+% Note that we put all instances in global memory - see FindResource.
149
+
150
+/Generic /Category findresource dup length dict copy
151
+begin
152
+  /Category /CIDDecoding def
153
+  /InstanceType /dicttype def
154
+
155
+  /.CMapChooser <<
156
+    % This lists CMaps to inverse and unite for creating a CIDDecoding.
157
+    % Choose by FAPIcidfmap.Registry concatenated with TrueType encoding ID.
158
+    % Font renderer must provide the glyph substitution internally.
159
+
160
+    /CNS1.Big5       [ /ETen-B5-H /ETen-B5-V ]
161
+    /CNS1.Unicode    [ /UniCNS-UCS2-H /UniCNS-UCS2-V]
162
+    /GB1.GB2312      [ /GBK-EUC-H /GBK-EUC-V ]
163
+    /GB1.Unicode     [ /UniGB-UCS2-H /UniGB-UCS2-V ]
164
+    /Japan1.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
165
+    /Japan1.Unicode  [ /UniJIS-UCS2-H  /UniJIS-UCS2-V]
166
+    /Japan2.ShiftJIS [ /90ms-RKSJ-H /90ms-RKSJ-V ]
167
+    /Japan2.Unicode  [ /UniHojo-UCS2-H ]
168
+    /Korea1.Johab    [ /KSC-Johab-V /KSC-Johab-H ]
169
+    /Korea1.Wansung  [ /KSCms-UHC-V /KSCms-UHC-H ]
170
+    /Korea1.Unicode  [ /UniKS-UCS2-H /UniKS-UCS2-V ]
171
+    /Identity.Symbol [ /Identity-H /Identity-V ]
172
+    /Unicode.Unicode [ /Identity-UTF16-H ]
173
+    /Identity.Unicode [ /Identity-UTF16-H ]
174
+  >> def
175
+
176
+  /.MakeInstance    % <name> .MakeInstance <inst>
177
+  { dup                                              % /Name /Name
178
+    //.CMapChooser exch .knownget not {
179
+      (Can't build /) print =string cvs print ( /CIDDecoding resource. See gs_ciddc.ps . ) =
180
+      /findresource cvx /undefinedresource signalerror
181
+    } if                                             % /Name [CMaps]
182
+    exch pop                                         % [CMaps]
183
+    /CMap /Category findresource                     % [CMaps] <CMapCategory>
184
+    /ParseCMap_Inverse /ProcSet findresource         % [CMaps] <CMapCategory> <PCI>
185
+    3 2 roll {                                       % <CMapCategory> <PCI> /CMapName
186
+      3 2 roll begin                                 % <PCI> /CMapName
187
+      dup .ResourceFile not {
188
+        (Can't find CMap ) print =string cvs print ( building a CIDDecoding resource. ) =
189
+        /findresource cvx /undefinedresource signalerror
190
+      } if
191
+      currentdict end exch                           % <PCI> /CMapName <CMapCategory> file
192
+
193
+      3 index begin
194
+      cvx exec                                       % <PCI> /CMapName <CMapCategory>
195
+      end
196
+      exch pop exch                                  % <CMapCategory> <PCI>
197
+    } forall
198
+    exch pop begin                                   %
199
+    .GetCIDDecoding
200
+    end
201
+  } bind def
202
+
203
+  /FindResource      % <name> FindResource <dict>
204
+  { currentglobal exch                               % bGlobal /InstName
205
+    true setglobal
206
+    dup //.MakeInstance exec                         % bGlobal /InstName <Inst>
207
+    DefineResource                                   % bGlobal <Inst>
208
+    exch setglobal                                   % <Inst>
209
+  } bind def
210
+
211
+currentdict end
212
+/CIDDecoding exch /Category defineresource pop
213
+
214
+%----------------SubstCID category----------------------------
215
+
216
+/Generic /Category findresource dup length dict copy
217
+begin
218
+  /Category /SubstCID def
219
+  /InstanceType /dicttype def
220
+currentdict end
221
+/SubstCID exch /Category defineresource pop
222
+
223
+setglobal
224
+.setlanguagelevel

+ 129
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidfm.ps View File

@@ -0,0 +1,129 @@
1
+%    Copyright (C) 2000 Artifex Software, Inc.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cidfm.ps 8954 2008-08-08 04:22:38Z ray $
17
+% Redefine CIDFont category with cidfmap .
18
+
19
+languagelevel 2 .setlanguagelevel
20
+
21
+4 dict begin
22
+/CategoryName /CIDFont def
23
+
24
+/MapFileName (cidfmap) def
25
+
26
+/IsMyRecord      % <raw_record> -> <raw_record> bool
27
+{ % Only for client's needs.
28
+  dup type /nametype eq
29
+} bind def
30
+
31
+/RecordVirtualMethods 3 dict begin
32
+
33
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
34
+  { % We know that currentdict is the category.
35
+    /Substitute get FindResource            % /Name <<CIDFont>>
36
+    dup length dict copy                    % /Name <<CIDFont>>
37
+    1 index ResourceStatus pop exch pop     % /Name <<CIDFont>> size
38
+  } bind def
39
+
40
+  /GetFilePath  % <scratch> <Name> <record> GetFilePath <filepath>
41
+  { % We know that currentdict is the category.
42
+    exch pop
43
+    /Substitute get exch ResourceFileName
44
+  } bind def
45
+
46
+  /GetSize   % <Name> <record> GetSize <size>
47
+  { % We know that currentdict is the category.
48
+    /Substitute get ResourceStatus {
49
+      exch pop exch pop
50
+    } {
51
+      /undefinedresource signalerror
52
+    } ifelse
53
+  } bind def
54
+
55
+  /GetCSI   % <record> GetCSI null
56
+  	    % <record> GetCSI dict
57
+  { % We know that currentdict is the category.
58
+    RESMPDEBUG { (cidfm GetCSI beg ) = } if
59
+    /Substitute get			% /Name
60
+    GetCIDSystemInfoFromMap
61
+    RESMPDEBUG { (cidfm GetCSI end ) print dup = } if
62
+  } bind def
63
+
64
+  /IsActive % <record> IsActive <bool>
65
+  { pop true
66
+  } bind def
67
+
68
+currentdict end def
69
+
70
+/VerifyMap  % <raw_map> VerifyMap -
71
+{ % Checks for vicious substitution cycles.
72
+  dup length dict copy                  % <<map>>
73
+  dup length dict                       % <<map>> <<temp>>
74
+  { % Choose a random record :
75
+    true 2 index {                      % <<map>> <<temp>> true /Name /Subs
76
+      3 2 roll pop false exit           % <<map>> <<temp>> /Name /Subs false
77
+    } forall
78
+    { exit                              % <<map>> <<temp>>
79
+    } if                                % <<map>> <<temp>> /Name /Subs
80
+    % Move the substitution chain to <<temp>>, checking for a cycle :
81
+    3 index 2 index undef               % <<map>> <<temp>> /Name /Subs
82
+    exch 2 index exch 0 put             % <<map>> <<temp>> /Subs
83
+    { //IsMyRecord exec not {
84
+        % Not a substitution, the chain terminates.
85
+        pop exit                        % <<map>> <<temp>>
86
+      } if                              % <<map>> <<temp>> /Subs
87
+      1 index 1 index known {
88
+        (Vicious substitution cycle in map file with the entry ) print =string cvs print ( .) =
89
+        /VerifyMap cvx /undefinedresource signalerror
90
+      } if                              % <<map>> <<temp>> /Subs
91
+      1 index 1 index 0 put
92
+      dup 3 index exch .knownget not {  % <<map>> <<temp>> /Subs
93
+        % No more substitutions, the chain terminates.
94
+        pop exit                        % <<map>> <<temp>>
95
+      } if                              % <<map>> <<temp>> /Subs /Subs1
96
+      exch                              % <<map>> <<temp>> /Subs1 /Subs
97
+      3 index exch undef                % <<map>> <<temp>> /Subs1
98
+    } loop
99
+    % Not cycled, now purge the <<temp>> :
100
+    { % Choose a random record :
101
+      true 1 index {                    % <<map>> <<temp>> true /Name /Subs
102
+        3 2 roll pop false exit         % <<map>> <<temp>> /Name /Subs false
103
+      } forall
104
+      { exit                            % <<map>> <<temp>>
105
+      } if                              % <<map>> <<temp>> /Name /Subs
106
+      % Remove it :
107
+      pop 1 index exch undef            % <<map>> <<temp>>
108
+    } loop
109
+  } loop
110
+  pop pop                               %
111
+} bind def
112
+
113
+/PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
114
+{ //IsMyRecord exec {
115
+    1 dict begin
116
+    /Substitute exch def
117
+    /RecordVirtualMethods //RecordVirtualMethods def
118
+    currentdict end
119
+    true
120
+  } {
121
+    false
122
+  } ifelse
123
+} bind def
124
+
125
+currentdict end 
126
+
127
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
128
+
129
+.setlanguagelevel

+ 412
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidfn.ps View File

@@ -0,0 +1,412 @@
1
+%    Copyright (C) 1995, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cidfn.ps 8954 2008-08-08 04:22:38Z ray $
17
+% ProcSet for implementing CIDFont and CIDMap resources.
18
+% When this is run, systemdict is still writable.
19
+
20
+% ---------------- Defining CIDFont resources ---------------- %
21
+
22
+% Define a CIDFont resource.  This is the defineresource implementation for
23
+% the CIDFont resource category.
24
+
25
+/.checkfonttype {	% <cidfont> <fonttype> .checkfonttype <cidfont> <new?>
26
+  1 index /FID known {
27
+    1 index /FontType get ne {
28
+      /definefont cvx /invalidfont signalerror
29
+    } if false
30
+  } {
31
+    1 index /FontType 3 -1 roll put true
32
+  } ifelse
33
+} bind def
34
+
35
+/.cidfonttypes where { pop } { /.cidfonttypes 6 dict def } ifelse
36
+.cidfonttypes
37
+
38
+30 dict begin
39
+
40
+% The key in .cidfonttypes is the CIDFontType value;
41
+% the value is a procedure that takes a font name and the CIDFont dictionary
42
+% and replaces the latter with a real font.
43
+
44
+% ------ CIDFontType 0 (FontType 9) ------ %
45
+
46
+% We add the following entries to the CIDFont dictionary, in addition to
47
+% the ones documented by Adobe:
48
+%	SubrCache - dictionary for caching Subr arrays
49
+% For CIDFonts where we read the data from disk incrementally:
50
+%	GlyphData is 0 (arbitrary)
51
+%	DataSource - a ReusableStreamDecode filter for the data
52
+% We also add a FID entry, and possibly a Subrs entry, to each element of
53
+% FDArray.
54
+
55
+dup 0 {
56
+  9 .checkfonttype {
57
+    /CIDInit /ProcSet findresource begin
58
+    .completefont9
59
+    end
60
+  } if
61
+  1 index exch .buildfont9 exch pop
62
+} put % Don't bind it here, because gs_fapi.ps redefines .buildfont9
63
+
64
+% Add entries to a new CIDFontType 0 font per documentation (FontMatrix)
65
+% or for .buildfont9 (FDArray.Private.Subrs).
66
+/.completefont9 {	% <cidfont0> .completefont9 <cidfont0>
67
+  currentglobal 3 1 roll dup gcheck setglobal
68
+  dup /FontMatrix known {
69
+    dup /FDArray get {
70
+      dup /FontMatrix get 0 get 1000000 ge {
71
+        /FontMatrix matrix put  % Bug 688517
72
+      } {
73
+        pop
74
+      } ifelse
75
+    } forall
76
+  } {
77
+    dup /FontMatrix [0.001 0 0 0.001 0 0] put
78
+    dup /FDArray get {
79
+       currentglobal exch dup gcheck setglobal
80
+       dup /FontMatrix get {1000 0 0 1000 0 0} matrix concatmatrix
81
+       /FontMatrix exch put
82
+       setglobal
83
+    } forall
84
+  } ifelse
85
+  dup /FDArray get {
86
+		% Read the Subrs if necessary.
87
+    dup /Private get dup /Subrs known not {
88
+      dup /SubrCount .knownget {
89
+		% Stack: font Private SubrCount
90
+	currentglobal 3 1 roll 1 index gcheck setglobal
91
+	array 1 index /Subrs 3 -1 roll put
92
+		% Stack: font global Private
93
+	2 index begin begin .loadsubrs end end
94
+	setglobal
95
+      } {
96
+	pop
97
+      } ifelse readonly pop
98
+    } {
99
+      pop pop
100
+    } ifelse
101
+  } forall
102
+  3 -1 roll setglobal
103
+} bind def
104
+
105
+% Read some Subrs for the current Type 1 subfont.
106
+% The subfont's Private dict is currentdict; the CIDFont itself is the
107
+% next dictionary on the stack.
108
+/.readsubrs {		% <Subrs> <start> .readsubrs <Subrs>
109
+  1 SubrCount 1 sub {
110
+    dup SDBytes mul SubrMapOffset add
111
+    dup SDBytes .readint exch SDBytes add SDBytes .readint
112
+    1 index sub string ReadString 2 index 3 1 roll put
113
+  } for
114
+} bind def
115
+
116
+% Ensure that all the Subrs for the current Type 1 subfont are loaded.
117
+% The subfont's Private dict is currentdict; the CIDFont itself is the
118
+% next dictionary on the stack.
119
+/.loadsubrs {
120
+  Subrs length 0 ne {
121
+    SubrCache SubrMapOffset .knownget {
122
+		% We've already loaded some Subrs at this offset.
123
+		% Make sure we've got as many as we need.
124
+      dup length SubrCount lt {
125
+		% We need to load more.
126
+	SubrCount array exch 1 index copy length .readsubrs
127
+	SubrCache SubrMapOffset 2 index put
128
+      } if
129
+    } {
130
+		% We haven't loaded any Subrs at this offset yet.
131
+      SubrCount array 0 .readsubrs
132
+      SubrCache SubrMapOffset 2 index put
133
+    } ifelse
134
+    Subrs copy pop
135
+  } if
136
+} bind def
137
+
138
+% ------ CIDFontType 1 (FontType 10) ------ %
139
+
140
+dup 1 {
141
+  10 .checkfonttype pop
142
+  1 index exch .buildfont10 exch pop
143
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont10
144
+
145
+% ------ CIDFontType 2 (FontType 11) ------ %
146
+
147
+dup 2 {
148
+  11 .checkfonttype pop
149
+  1 index exch .buildfont11 exch pop
150
+} put % Don't bind it here because gs_fapi.ps redefines .buildfont11
151
+
152
+pop		% .cidfonttypes
153
+
154
+% ---------------- Reading CIDFontType 0 files ---------------- %
155
+
156
+/StartData {		% <(Binary)|(Hex)> <datalength> StartData -
157
+			%   (currentdict is CID font dict)
158
+		% If we're loading a resource file and the data format is
159
+		% binary, we can just save a pointer to the data and load it
160
+		% incrementally.
161
+  mark {
162
+		% Previous versions of this code made provisions for
163
+		% reading hex-encoded data incrementally.  Since hex data
164
+		% doesn't seem to be used in practice, we no longer bother.
165
+    2 index (Binary) ne { stop } if
166
+    currentfile .currentresourcefile ne { stop } if
167
+		% Hack: the pdfwrite driver relies on finalization to write
168
+		% out fonts.  However, the font may be finalized after the
169
+		% resource file, in which case the resource file will be
170
+		% closed.  So if the current output device is pdfwrite,
171
+		% don't use incremental loading.
172
+    currentdevice .devicename /pdfwrite eq { stop } if
173
+    currentfile fileposition
174
+  } .internalstopped {
175
+		% File is not positionable, or uses hex data.
176
+		% Load the data now.
177
+    cleartomark exch
178
+    currentfile exch
179
+    (Hex) eq { /ASCIIHexDecode filter } if
180
+    exch
181
+		% Stack: file length
182
+    dup 65400 le {
183
+		% readstring with a 0-length string causes a rangecheck,
184
+		% but a data length of 0 is allowed.
185
+      string dup () ne { 1 index exch readstring pop } if
186
+    } {
187
+      mark 3 1 roll {
188
+		% Stack: mark str ... file length
189
+	dup 0 eq { pop exit } if
190
+	dup 65400 .min dup string 3 index exch readstring pop
191
+		% Stack: mark str ... file length newstrlen newstr
192
+	4 1 roll sub
193
+      } loop
194
+      counttomark 1 add 1 roll ]
195
+    } ifelse
196
+    /GlyphData exch def
197
+    dup currentfile eq { pop } { closefile } ifelse
198
+  } {
199
+		% File is positionable and binary, just save a pointer.
200
+		% Stack: (Binary) length -mark- pos
201
+    /GlyphData 0 def
202
+    exch pop 3 -1 roll pop exch
203
+		% Stack: pos length
204
+    /DataSource currentfile 2 index () .subfiledecode true .reusablestream def
205
+    currentfile 3 1 roll add setfileposition
206
+  } ifelse
207
+  /SubrCache 10 dict def
208
+  CIDFontName currentdict /CIDFont defineresource pop
209
+  end			% CID font dict
210
+  end			% resource category dict
211
+} bind def
212
+
213
+% Some Adobe fonts include the line
214
+%   /Setup /cid_Setup load def
215
+% This is apparently included only to prevent proper, conforming PostScript
216
+% interpreters (as opposed to ATM or a special Adobe font loader) from
217
+% loading the font, since Setup is not referenced anywhere else in the file.
218
+/cid_Setup { } def
219
+
220
+% ------ Generic ------ %
221
+
222
+% Read a string at a given offset in a "file" (binary file or
223
+% GlyphData in RAM).
224
+/ReadString {		% <pos> <string> ReadString <string>
225
+  GlyphData 0 eq {
226
+	% Read from the file.
227
+    DataSource 3 -1 roll setfileposition
228
+    DataSource exch readstring pop
229
+  } {
230
+	% Read from a string or an array of strings.
231
+    GlyphData .stringsreadstring
232
+  } ifelse
233
+} bind def
234
+/.stringsreadstring	% <pos> <string> <strings> .stringsreadstring
235
+			%   <vmstring>
236
+{ dup type /stringtype eq
237
+   { 3 1 roll length getinterval
238
+   }
239
+   {  {		% Stack: pos string glyphdata
240
+	dup 0 get length dup 4 index gt { exit } if
241
+	4 -1 roll exch sub 3 1 roll
242
+	dup length 1 sub 1 exch getinterval
243
+      }
244
+     loop
245
+		% Stack: pos string glyphdata glyphdata[0]length
246
+		% We know no request can span more than 2 strings.
247
+     3 index 3 index length add 1 index le
248
+      {		% Request fits in a single string: just return a substring.
249
+	pop 0 get 3 1 roll length getinterval
250
+      }
251
+      {		% Request spans 2 strings.  Copy the first part.
252
+	1 index 0 get 4 index 3 -1 roll 1 index sub getinterval
253
+	2 index copy
254
+		% Copy the second part.
255
+		% Stack: pos str glyphdata str1
256
+	length exch 1 get 0 3 index length
257
+	3 index sub getinterval 2 index 3 1 roll putinterval
258
+	exch pop
259
+      }
260
+     ifelse
261
+   }
262
+  ifelse
263
+} bind def
264
+
265
+% Interpret a byte string as a (big-endian) integer.
266
+/.cvbsi			% <bytes> .cvbsi <int>
267
+{ 0 exch { exch 8 bitshift add } forall
268
+} bind def
269
+
270
+% Read an integer from binary data.
271
+/.readint		% <pos> <nbytes> .readint <int>
272
+{ string ReadString .cvbsi
273
+} bind def
274
+
275
+currentdict end
276
+
277
+% ---------------- Rendering ---------------- %
278
+
279
+% ------ CIDFontType 0 ------ %
280
+
281
+/.readglyphdata {
282
+  currentfont exch .type9mapcid
283
+  FDArray exch get exch
284
+} bind def
285
+
286
+% BuildGlyph procedure for CIDFontType 0.
287
+% The name %Type9BuildGlyph is known to the interpreter.
288
+/.cid0buildstring 10 string def
289
+(%Type9BuildGlyph) cvn {	% <cidfont> <cid> %Type9BuildGlyph -
290
+  .currentglobal 3 1 roll 1 index gcheck .setglobal
291
+  1 index begin
292
+  dup .readglyphdata dup null eq {
293
+		% Substitute CID 0. **** WRONG ****
294
+    pop pop 0 .readglyphdata
295
+  } if
296
+		% Stack: cidfont cid subfont charstring
297
+  dup null eq { pop pop pop pop } {	%**** WRONG ****
298
+    4 -1 roll pop
299
+    3 1 roll exch dup 4 -1 roll 0 0 moveto
300
+    3 index /FontType get 2 eq { .type2execchar } { .type1execchar } ifelse
301
+  } ifelse	%**** WRONG ****
302
+  end
303
+  .setglobal
304
+} bind def
305
+
306
+% ------ CIDFontType 2 ------ %
307
+
308
+% BuildGlyph procedure for CIDFontType 2.
309
+% The name %Type11BuildGlyph is known to the interpreter.
310
+(%Type11BuildGlyph) cvn {	% <cidfont> <cid> %Type11BuildGlyph -
311
+		% We must be prepared for out-of-range CIDs.
312
+  2 copy { .type11mapcid } .internalstopped {
313
+    pop /CharStrings get /.notdef get
314
+  } if
315
+			% Stack: cidfont cid glyphindex
316
+  1 index exch .type42execchar
317
+} bind def
318
+
319
+% ---------------- Define resources ---------------- %
320
+
321
+languagelevel exch 2 .setlanguagelevel
322
+
323
+% Define the CIDInit ProcSet resource.
324
+% The ProcSet dictionary is still on the stack.
325
+
326
+% We might have loaded CMap support already.  However, Adobe's
327
+% protected font downloader defines a CIDInit ProcSet that will be
328
+% loaded from the filesystem later, so we must check specifically
329
+% for the ProcSet being defined in VM.
330
+/CIDInit /ProcSet 2 copy resourcestatus { pop 0 eq } { false } ifelse {
331
+  pop pop findresource dup length 4 index length add dict .copydict
332
+  4 -1 roll exch .copydict
333
+} {
334
+  3 -1 roll
335
+} ifelse exch defineresource pop
336
+
337
+% Define the CIDFont resource category.
338
+% We break out .buildcidfont because it appears that at least for
339
+% Type 32 (CIDFontType 4) fonts, the font can be registered in the Font
340
+% category with only a CIDFontType and no FontType.
341
+/.buildcidfont {		% <name> <fontdict> .buildcidfont
342
+				%   <name> <cidfont>
343
+  systemdict /ProvideUnicode .knownget not { false } if {
344
+    /FontEmulationProcs /ProcSet findresource
345
+    /ProvideUnicodeDecoding get exec
346
+  } if
347
+  dup /CIDFontType get //.cidfonttypes exch get exec
348
+} odef
349
+
350
+/CIDFont /Generic /Category findresource dup length dict .copydict
351
+dup /InstanceType /dicttype put
352
+dup /DefineResource {
353
+  .buildcidfont
354
+  dup /OrigFont known not {
355
+     dup dup /OrigFont exch .growput  % CPSI does it. Adding just for CET 33_all.PS conformity.
356
+  } if
357
+  dup /PaintType known not {
358
+     dup /PaintType 0 .growput  % CPSI does it. Adding just for CET 33_all.PS conformity.
359
+  } if
360
+  /Generic /Category findresource /DefineResource get exec
361
+} put
362
+% CIDFonts may be defined in CFF OpenType files.
363
+% Check for this here.
364
+/.loadcidfontresource {
365
+  dup .ResourceFile {
366
+    {.loadfont} .execasresource
367
+  } {
368
+    dup /undefinedresource signalerror
369
+  } ifelse
370
+} bind def
371
+dup /.LoadResource {
372
+  currentglobal {
373
+    .loadcidfontresource
374
+  } {
375
+    true setglobal {.loadcidfontresource} stopped false setglobal {stop} if
376
+  } ifelse
377
+} bind put
378
+
379
+/Category defineresource pop
380
+
381
+% Add the new FontType resources.
382
+
383
+9 1 11 { dup /FontType defineresource pop } for
384
+
385
+% Add the new FMapType resource.
386
+
387
+9 dup /FMapType defineresource pop
388
+
389
+% Define the CIDMap resource category.
390
+% These aren't documented, but it's clear what they are for:
391
+% to give names to CIDMaps for CIDFontType 2 fonts.
392
+
393
+/CIDMap /Generic /Category findresource dup length dict .copydict
394
+dup /.CheckResource {
395
+	% Allow a string, an array of strings, or (as of Adobe release 3011)
396
+	% a dictionary.
397
+  dup type dup dup /stringtype eq exch /dicttype eq or {
398
+    pop true
399
+  } {
400
+    dup /arraytype eq exch /packedarraytype eq or {
401
+      true exch { type /stringtype eq and } forall
402
+    } {
403
+      false
404
+    } ifelse
405
+  } ifelse
406
+} bind put
407
+/Category defineresource pop
408
+
409
+.setlanguagelevel
410
+
411
+%% Replace 1 (gs_ciddc.ps)
412
+(gs_ciddc.ps) runlibfile

+ 161
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cidtt.ps View File

@@ -0,0 +1,161 @@
1
+%    Copyright (C) 2000 Artifex Software, Inc.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cidtt.ps 9834 2009-07-03 09:27:02Z ken $
17
+% Redefine CIDFont category with an emulation with True Type fonts.
18
+
19
+languagelevel 2 .setlanguagelevel
20
+
21
+15 dict begin    % a temporary dictionary for local binding.
22
+
23
+%------------------Copy the FontEmulationProcs here : -------------------
24
+
25
+/FontEmulationProcs /ProcSet findresource {
26
+  def
27
+} forall
28
+
29
+currentdict /super.complete_instance currentdict /complete_instance get put
30
+
31
+%-------Auxiliary procedures for building CIDFontType 2 from TT file -----------
32
+
33
+/GenerateCIDMap   % <font> GenerateCIDMap <font>
34
+{ begin
35
+    % Obtain the maximal CID :
36
+    %   This implementation doesn't check whether glyphs really present.
37
+    Decoding /CIDCount get /CIDCount exch def
38
+    % Prepare the CIDMap structure :
39
+    /CIDMap [
40
+      CIDCount 22000 le {
41
+        CIDCount 2 mul string
42
+      } {
43
+        44000 string
44
+        CIDCount 44000 gt {
45
+	   % need three strings
46
+           44000 string		% 22000 2 mul string
47
+           CIDCount 44000 sub 2 mul string
48
+        } {
49
+           CIDCount 22000 sub 2 mul string
50
+        } ifelse
51
+      } ifelse
52
+    ] def
53
+    % Now fill it :
54
+    Decoding TT_cmap SubstNWP GDBytes CIDMap .fillCIDMap
55
+  currentdict end
56
+} bind def
57
+
58
+/GenerateIdentityCIDMap   % <font> GenerateCIDMap <font>
59
+{ begin
60
+    /CIDMap [ 44000 string 44000 string 44000 string] def
61
+    CIDMap .fillIdentityCIDMap
62
+  currentdict end
63
+} bind def
64
+
65
+/load_sfnts  % <FontDict> load_sfnts <FontDict> 
66
+{ % Read the True Type file from the path /Path, and buld /sfnts,
67
+  % skipping glyf and loca. 
68
+  dup /Path get                                            % <font> (path)
69
+  QUIET not {
70
+    (Loading a TT font from ) print dup print 
71
+    ( to emulate a CID font ) print 1 index /CIDFontName get =only ( ... ) print
72
+  } if
73
+  (r) file dup                                             % <font> file file
74
+  3 1 roll                                                 % file <font> file
75
+  1 index /SubfontID .knownget not { 0 } if                % file <font> file SubfontID
76
+  .load_tt_font_stripped exch copy                         % file <font>
77
+  QUIET not {
78
+    (Done.) =
79
+  } if
80
+  dup 3 1 roll                                             % <font> file <font>
81
+  exch /File exch put                                      % <font>
82
+  dup dup /CIDSystemInfo get /Ordering get (.)             % <font> () ()
83
+  2 index /Decoding get =string cvs                        % <font> () () ()
84
+  concatstrings concatstrings cvn /Decoding exch put       % <font>
85
+  dup dup /CIDSystemInfo get /Ordering get (-WMode)        % <font> <font> () ()
86
+  concatstrings cvn /SubstCID 
87
+  2 copy resourcestatus {
88
+    pop pop
89
+    findresource /subst_CID_on_WMode exch put              % <font>
90
+  } {
91
+    pop pop pop
92
+  } ifelse
93
+  dup /Decoding get /Identity.Unicode eq {
94
+    //ChooseDecoding exec                                  % <font>
95
+    //GenerateIdentityCIDMap exec                          % <font>
96
+  } {
97
+    //ChooseDecoding exec                                  % <font>
98
+    //GenerateCIDMap exec                                  % <font>
99
+  } ifelse
100
+} bind def
101
+
102
+%-----------TrueType-specific methods for category redefinition : -----------
103
+
104
+/RefinePath      % <FontDict> RefinePath <FontDict>
105
+{ dup begin
106
+  Path .libfile {
107
+      dup .filename {
108
+        currentdict exch /Path exch put
109
+      } if
110
+      closefile
111
+  } {
112
+    (Can't find the font file ) print =
113
+    /findfont cvx /undefinedfilename signalerror
114
+  } ifelse
115
+  end
116
+} bind def
117
+
118
+/complete_instance  % <font_name> <FontDict> <Options> complete_FAPI_Font <font_name> <FontDict>
119
+{ 1 index /CIDFontType 2 put % Other types are not emulated yet.
120
+  //super.complete_instance exec
121
+  //RefinePath exec
122
+  //load_sfnts exec
123
+} bind def
124
+
125
+/IsMyRecord      % <raw_record> -> <raw_record> bool
126
+{ dup type /dicttype eq { dup /FileType .knownget { /TrueType eq } { false } ifelse } { false } ifelse
127
+} bind def
128
+
129
+/IsActive       % <record> IsActive <bool>
130
+{ pop true
131
+} bind def
132
+
133
+/CIDFontRecordVirtualMethods //RecordVirtualMethodsStub dup length 3 add dict copy begin
134
+  /GetCSI //TranslateCSI def
135
+  /IsActive //IsActive def
136
+  /MakeInstance   % <Name> <record> MakeInstance <Name> <Instance> <size>
137
+  { currentglobal 3 1 roll true setglobal
138
+    //CIDFontOptions //complete_instance exec
139
+    2 copy //GetSize exec
140
+    4 3 roll setglobal
141
+  } bind def
142
+currentdict end def
143
+
144
+% Redefine the /CIDFont category :
145
+4 dict begin
146
+  /CategoryName /CIDFont def
147
+  /IsMapFileOptional true def
148
+  /VerifyMap  { pop } bind def
149
+  /PreprocessRecord  % <map> <Name> <raw_record> PreprocessRecord <map> <Name> <record> <bool>
150
+  { //IsMyRecord exec dup {
151
+      pop dup /RecordVirtualMethods //CIDFontRecordVirtualMethods put
152
+      true
153
+    } if
154
+  } bind def
155
+currentdict end
156
+
157
+/MappedCategoryRedefiner /ProcSet findresource /Redefine get exec
158
+
159
+end  % the temporary dictionary for local binding.
160
+
161
+.setlanguagelevel

+ 549
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cmap.ps View File

@@ -0,0 +1,549 @@
1
+%    Copyright (C) 1995, 2000 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cmap.ps 8954 2008-08-08 04:22:38Z ray $
17
+% ProcSet for implementing CMap resources.
18
+% When this is run, systemdict is still writable.
19
+
20
+% NOTE: Rearranged fonts are not implemented yet.
21
+
22
+[
23
+   /CMERGE_DEBUG
24
+   /USE_CIDCHAR_AS_RANGE
25
+] {dup where {pop pop} { currentdict exch //false def pop } ifelse} forall
26
+
27
+% ---------------- Public operators ---------------- %
28
+
29
+/.rewriteTempMapsNotDef {
30
+  %
31
+  % Before building .CodeMapData from .TempMaps,
32
+  % we need to replace dst type codes in the notdef map with the value 3,
33
+  % which corresponds to CODE_VALUE_NOTDEF, see gxfcmap.h .
34
+  %
35
+  CMAPDEBUG { (rewriting TempMapsNotDef\n) print flush } if
36
+  .TempMaps 2 get
37
+  dup length 0 gt {
38
+    0 get
39
+    CMAPDEBUG { (...original...\n) print flush } if
40
+    1 5 2 index length 1 sub {
41
+      { 1 index exch get 2 3 put } stopped
42
+      { CMAPDEBUG { (cannot rewrite\n) print flush } if }
43
+      { CMAPDEBUG { (rewrite\n) print flush } if } ifelse
44
+    } for
45
+  } if
46
+  pop
47
+  CMAPDEBUG { (...FINISHED...\n) print } if
48
+} bind def
49
+
50
+/.composefontdict {		% <name> <cmap|cmapname> <fonts> composefont <name> <font_dict>
51
+  10 dict begin
52
+    /CMap 2 index dup type /dicttype ne { /CMap findresource } if def
53
+    /FDepVector 1 index cvlit def	% temporarily
54
+    /Encoding [ 0 1 FDepVector length 1 sub { } for ] def
55
+    /FontInfo 1 dict def % for .processToUnicode in pdf_font.ps .
56
+    /FDepVector [ 0 1 FDepVector length 1 sub {
57
+		% Stack: name cmap[name] fonts /FDepVector [ fonts... i
58
+      FDepVector 1 index get
59
+      dup type /dicttype ne {
60
+	dup /CIDFont resourcestatus {
61
+	  pop pop /CIDFont
62
+	} {
63
+	  /Font
64
+	} ifelse findresource
65
+      } if
66
+      exch CMap /FontMatrices get dup length 2 index gt {
67
+	exch get dup //null eq { pop } { makefont } ifelse
68
+      } {
69
+	pop pop
70
+      } ifelse
71
+    } for ] readonly def
72
+    /FMapType 9 def
73
+    /FontMatrix matrix def
74
+    /FontName 3 index def
75
+    CMap /WMode .knownget { /WMode exch def } if
76
+    /FontType 0 def
77
+  pop pop currentdict end 
78
+} bind odef
79
+
80
+% composefont doesn't appear in CMap files -- it's documented in
81
+% the "PostScript Language Reference Manual Supplement".
82
+/composefont {		% <name> <cmap|cmapname> <fonts> composefont <font>
83
+  .composefontdict /Font defineresource
84
+} bind def
85
+
86
+% ---------------- CMap operators ---------------- %
87
+
88
+40 dict begin
89
+
90
+% Our internal .CodeMapData structure closely mirrors the structures
91
+% defined in gxfcmap.h (q.v.).  () indicate a string, [] indicate an array,
92
+% ? indicates a Boolean, # indicates an integer, {} for grouping.
93
+%	[[[(first) (last) ...]+]		% code space ranges
94
+%	 [[(prefix) (key_size,?is_range,value_type,value_size) (keys...)
95
+%	   {(values...) | [value ...]} #font_index ]+]	% code mappings
96
+%	  ...]
97
+%	 <<same>>		% notdef mappings
98
+%	]
99
+% FontMatrices is the array of matrices defined by begin/endusematrix.
100
+% All of the arrays and strings are read-only after they have been built.
101
+%
102
+% Note that the code in zfcmap.c that constructs the C structures from
103
+% the PostScript structures has intimate knowledge of the above format.
104
+
105
+% ****** NOTE: The code currently only handles "well-behaved" CMaps:
106
+%	- CID values only (no bfchars), 16-bit
107
+%	- Entries (both code space and map) must be sorted
108
+%	- Only the last byte must vary in each map range, except for
109
+%	the identity mapping
110
+
111
+% ------ Font-level operators ------ %
112
+
113
+/begincmap {		% - begincmap -
114
+  /.CodeMapData [[[]] [[]] [[]]] def
115
+  /FontMatrices [] def
116
+  /.FontIndex 0 def
117
+  /.TempMaps [20 dict 50 dict 50 dict] def
118
+  /CodeMap //null def		% for .buildcmap
119
+} bind def
120
+
121
+/endcmap {		% - endcmap -
122
+  .rewriteTempMapsNotDef
123
+
124
+  CMAPDEBUG {
125
+    2 (*** undefined charmap ***)
126
+    1 (*** defined charmap ***)
127
+    0 (*** code space ranges ***)
128
+    3 { =
129
+      .TempMaps exch get
130
+      0 1 2 index length 1 sub {
131
+        dup == (\t) print
132
+        1 index exch get ==
133
+      } for
134
+      pop
135
+    } repeat
136
+  } if
137
+  
138
+  /.CodeMapData dup load [ exch
139
+    .TempMaps aload pop begin begin begin 
140
+    {
141
+      [ exch aload pop
142
+        0 1 currentdict length 1 sub { 
143
+           currentdict exch get 
144
+        } for 
145
+      ]
146
+      end
147
+    } forall
148
+  ] .endmap def
149
+
150
+  CMAPDEBUG {
151
+    (*** Content of .CodeMapData ***) =
152
+    0 .CodeMapData { exch dup == 1 add exch (\t) print == } forall
153
+    pop
154
+  } if
155
+
156
+  currentdict /.TempMaps undef
157
+  /FontMatrices FontMatrices .endmap def
158
+} bind def
159
+
160
+/.endmap {		% <map> .endmap <map>
161
+  dup type /arraytype eq {
162
+	% This might be a shared read-only array inherited via usecmap.
163
+	% Don't try to update its elements if this is the case.
164
+    dup wcheck {
165
+      0 1 2 index length 1 sub {
166
+	2 copy 2 copy get .endmap put pop
167
+      } for readonly
168
+    } if
169
+  } {
170
+    dup type /stringtype eq { readonly } if
171
+  } ifelse
172
+} bind def
173
+
174
+/.appendmap {		% -mark- <elt> ... <array#> .appendmap -
175
+  .TempMaps exch get counttomark 1 add 1 roll
176
+  ] 1 index length exch put
177
+} bind def
178
+
179
+/begincodespacerange {	% <count> begincodespacerange -
180
+  pop mark
181
+} bind def
182
+
183
+/endcodespacerange {	% <code_lo> <code_hi> ... endcodespacerange -
184
+  0 .appendmap
185
+} bind def
186
+
187
+/usecmap {		% <CMap_name> usecmap -
188
+  /CMap findresource dup
189
+		% Copy the top level of .CodeMapData
190
+  /.CodeMapData exch /.CodeMapData get copyarray def
191
+  /FontMatrices exch /FontMatrices get copyarray def
192
+} bind def
193
+
194
+/usefont {		% <fontID> usefont -
195
+  /.FontIndex exch def
196
+} bind def
197
+
198
+/beginusematrix {	% <fontID> beginusematrix -
199
+  FontMatrices wcheck not FontMatrices length 2 index le or {
200
+    FontMatrices length 1 index 1 add .max array
201
+    dup 0 FontMatrices putinterval
202
+    /FontMatrices exch def
203
+  } if
204
+} bind def
205
+
206
+/endusematrix {		% <matrix> endusematrix -
207
+  FontMatrices 3 1 roll put
208
+} bind def
209
+
210
+% ------ Rearranged font operators ------ %
211
+
212
+/beginrearrangedfont {	% <font_name> <font*> beginrearrangedfont -
213
+  10 dict begin
214
+  /.FontNames exch def
215
+  /.FontName exch def
216
+  begincmap
217
+} bind def
218
+/endrearrangedfont {	% - endrearrangedfont -
219
+  (REARRANGED FONTS NOT IMPLEMENTED YET.) = flush
220
+  FontName .FontNames 0 get findfont end definefont pop
221
+} bind def
222
+
223
+% ------ Character name/code selector operators ------ %
224
+
225
+/beginbfchar {		% <count> beginbfchar -
226
+  pop mark
227
+} bind def
228
+/endbfchar {		% <code> <to_code|charname> ... endbfchar
229
+  counttomark 2 idiv {
230
+    counttomark -2 roll		% process in correct order
231
+    .addbfchar
232
+  } repeat 1 .appendmap
233
+} bind def
234
+
235
+/beginbfrange {		% <count> beginbfrange -
236
+  pop mark
237
+} bind def
238
+/endbfrange {		% <code_lo> <code_hi> <to_code|(charname*)> ...
239
+			%   endbfrange -
240
+  counttomark 3 idiv {
241
+    counttomark -3 roll		% process in correct order
242
+    dup type dup /arraytype eq exch /packedarraytype eq or {
243
+			% Array value, split up.
244
+      exch pop {
245
+			% Stack: code to_code|charname
246
+	1 index exch .addbfchar
247
+			% Increment the code.  As noted above, we require
248
+			% that only the last byte vary, but we still must
249
+			% mask it after incrementing, in case the last
250
+			% value was 0xff.
251
+			% Stack: code prefix params key value fontindex
252
+	6 -1 roll dup length string copy
253
+	dup dup length 1 sub 2 copy get 1 add 255 and put
254
+      } forall pop
255
+    } {
256
+			% Single value, handle directly.
257
+      .addbfrange
258
+    } ifelse
259
+  } repeat 1 .appendmap
260
+} bind def
261
+
262
+/.addbfchar {		% <code> <to_code|charname> .addbfchar
263
+			%   <prefix> <params> <key> <value> <font_index>
264
+  1 index exch .addbfrange
265
+} bind def
266
+/.addbfrange {		% <code_lo> <code_hi> <to_code|charname>
267
+			%   .addbfrange <<same as .addbfchar>>
268
+  4 string dup 3
269
+  3 index type /nametype eq {
270
+    2 index 2 1 put % dst = CODE_VALUE_GLYPH, see gxfcmap.h .
271
+    4 -1 roll 1 array astore 4 1 roll 4
272
+  } {
273
+    2 index 2 2 put % dst = CODE_VALUE_CHARS, see gxfcmap.h .
274
+    3 index length
275
+  } ifelse put
276
+			% Stack: code_lo code_hi value params
277
+  3 index 3 index eq {
278
+			% Single value.
279
+    3 -1 roll pop exch () exch
280
+  } {
281
+			% Range.
282
+    dup 0 1 put dup 1 1 put
283
+    4 2 roll
284
+    dup dup length 1 sub 0 exch getinterval 5 1 roll	% prefix
285
+			% Stack: prefix value params code_lo code_hi
286
+    2 { exch dup length 1 sub 1 getinterval } repeat concatstrings
287
+    3 -1 roll
288
+  } ifelse
289
+  .FontIndex
290
+} bind def
291
+
292
+% ------ CID selector operators ------ %
293
+
294
+/begincidchar {		% <count> begincidchar -
295
+  pop mark
296
+} bind def
297
+/endcidchar {		% <code> <cid> ... endcidchar -
298
+  1 .endmapchars
299
+} bind def
300
+
301
+/begincidrange {	% <count> begincidrange -
302
+  pop mark
303
+} bind def
304
+/endcidrange {		% <code_lo> <code_hi> <cid_base> ... endcidrange -
305
+  1 .endmapranges
306
+} bind def
307
+
308
+/.endmapchars {         % -mark- <code> <cid> ... <map#> .endmapchars -
309
+  counttomark 1 add 1 roll
310
+  counttomark 2 idiv {
311
+    counttomark -2 roll         % process in correct order
312
+    exch        % <cid> <code>
313
+                % Construct prefix, params, key, value, font_index
314
+    dup length 1 eq {   % 1-byte
315
+      <00 00 00 02> ()  % <prefix> <param> <null_key>
316
+    } {                 % N-byte
317
+      dup 0 1 getinterval exch  % make 1-byte prefix
318
+      4 string dup 0
319
+      USE_CIDCHAR_AS_RANGE {
320
+        <00 01 00 02>   % skelton for param
321
+      } {
322
+        <00 00 00 02>   % skelton for param
323
+      } ifelse
324
+      putinterval
325
+      exch              % <prefix> <param> <code>
326
+      dup length        % <prefix> <param> <code> N
327
+      1 sub             % <prefix> <param> <code> N-1
328
+      dup               % <prefix> <param> <code> N-1 N-1
329
+      3 index           % <prefix> <param> <code> N-1 N-1 <param>
330
+      exch              % <prefix> <param> <code> N-1 <param> N-1
331
+      0 exch            % <prefix> <param> <code> N-1 <param> 0 N-1
332
+      put               % <prefix> <param'> <code> N-1
333
+      1 exch            % <prefix> <param'> <code> 1 N-1
334
+      getinterval       % <prefix> <param'> <key>
335
+
336
+      USE_CIDCHAR_AS_RANGE {
337
+        dup length 2 mul string % <key> <dkey>
338
+        dup                     % <key> <dkey> <dkey>
339
+        2 index                 % <key> <dkey> <dkey> <key>
340
+        0 exch putinterval      % <key> <dkey'>
341
+        dup                     % <key> <dkey'> <dkey'>
342
+        3 -1 roll               % <dkey'> <dkey'> <key>
343
+        dup length              % <dkey'> <dkey'> <key> N-1
344
+        exch putinterval        % <dkey''>
345
+      } if
346
+
347
+    } ifelse
348
+
349
+    4 -1 roll           % <prefix> <param'> <key> <cid>
350
+    .endmapvalue        % <prefix> <param'> <key> <hex_cid> <font_idx>
351
+    % prefix params keys value fontindex
352
+    counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
353
+       4 index 10 index eq      % compare prefix
354
+       4 index 10 index eq and  % compare params
355
+       1 index 7 index eq and   % compare fontindex
356
+        {
357
+          CMAPDEBUG { (merge! char\n) print } if
358
+          pop 4 2 roll pop pop
359
+           % prefix params keys value fontindex keys2 value2
360
+          5 -1 roll 3 -1 roll concatstrings
361
+           % prefix params value fontindex value2 keys'
362
+          4 -1 roll 3 -1 roll concatstrings
363
+           % prefix params fontindex keys' values'
364
+          3 -1 roll
365
+        } if
366
+     } if % end of 2 (or more) ranges
367
+    CMERGE_DEBUG {
368
+    ( prefix:) print 4 index =only
369
+    ( param:) print 3 index =only
370
+    ( key:) print 2 index =only
371
+    ( hex_cid:) print 1 index =only
372
+    ( font_idx:) print 0 index == flush
373
+    } if
374
+  } repeat
375
+  counttomark 2 add -1 roll .appendmap
376
+} bind def
377
+
378
+/.endmapranges {	% -mark- <code_lo> <code_hi> <cid_base> ... <map#>
379
+			%   .endmapranges -
380
+  counttomark 1 add 1 roll
381
+  counttomark 3 idiv {
382
+    counttomark -3 roll		% process in correct order
383
+		% Construct prefix, params, key_lo, key_hi, value, font_index
384
+    3 1 roll	% <cid_base> <code_lo> <code_hi>
385
+		%		prefix	key
386
+		% 1-byte code:	()	.
387
+		% 1-byte range:	()	.
388
+		% N-byte code:	.	(*)
389
+		% N-byte range:	(*)	(*)
390
+    dup 2 index eq {	% <code_lo> == <code_hi>
391
+           		% 0: prefix_len for 1-byte code
392
+           		% 1: prefix_len for N-byte code
393
+       dup length 1 eq { 0 } { 1 } ifelse
394
+    } {			% <code_lo> != <code_hi>
395
+     			% calculate prefix_len for *-byte range
396
+       dup length 1 sub % <cid_base> <code_lo> <code_hi> <code_len-1>
397
+       0		% initial value for N
398
+       {		% <cid_base> <code_lo> <code_hi> (code_len-1)  N
399
+           dup 2 index ge { exit } if % if (N >= len - 1) exit
400
+           3 index 1 index get	% N-th byte of code_lo
401
+           3 index 2 index get	% N-th byte of code_hi
402
+           eq { 1 add } { exit } ifelse
403
+       } loop
404
+       exch pop 	% discard <code_len-1>
405
+    } ifelse
406
+				% cid_base code_lo code_hi prefix_len
407
+
408
+    % Althogh Adobe CPSI with native CID/CMap support accept
409
+    % multi-dimensional range specification in notdef & cidrange
410
+    % (and CID is calculated as relative position in multi-dimensional
411
+    % range), but older CPSI & ATM cannot handle it.
412
+    % 
413
+    % GS accepts such specification, but it's recommended to keep
414
+    % from using this feature for notdef & cidrange.
415
+    % Following is a disabler of this feature.
416
+    % -------------------------------------------------------------
417
+    % counttomark 1 add index 	% get map#
418
+    % 0 ne {			% if not codespacerange
419
+    %   1 index length 		% get code length
420
+    %   1 index 			% get prefix length
421
+    %   sub			% calculate key length
422
+    %   1 gt {			% if (key_len > 1),
423
+    %      (.endmapranges error) = flush
424
+    %      (multi-dimensional range specification is used out of codespacerange)
425
+    %      = flush
426
+    %      (/) =only
427
+    %      CMapName CMapName length string cvs =only
428
+    %      (: <) =only
429
+    %      2 index (%stdout) (w) file exch writehexstring
430
+    %      (> <) =only
431
+    %      1 index (%stdout) (w) file exch writehexstring
432
+    %      (>\n) =only flush
433
+    %      quit
434
+    %   } if
435
+    % } if
436
+    % -------------------------------------------------------------
437
+
438
+    1 index exch 0 exch getinterval
439
+				% cid_base code_lo code_hi prefix
440
+    dup length 3 index length exch sub
441
+				% cid_base code_lo code_hi prefix range_len
442
+    dup 255 gt {
443
+       (too long coderange specification for current GS\n) print
444
+       /.endmapranges cvx /rangecheck signalerror
445
+    } if
446
+    <00 01 00 02> 4 string copy	% create initialized param
447
+    dup 0 4 -1 roll put		% put range_len into param
448
+
449
+    % get key_hi
450
+    3 -1 roll dup length 3 index length dup 3 1 roll sub getinterval
451
+
452
+    % get key_lo
453
+    4 -1 roll dup length 4 index length dup 3 1 roll sub getinterval
454
+
455
+    % make "keys" (concatenated key_lo + key_hi)
456
+    exch concatstrings
457
+
458
+    % 
459
+    4 -1 roll
460
+    .endmapvalue
461
+
462
+		% See if we can merge with the previous value.
463
+		% The prefix, params, and font index must match.
464
+    % prefix params keys value fontindex
465
+    counttomark 5 gt { % 2 (or more) ranges (1 range = 5 item)
466
+       4 index 10 index eq	% compare prefix
467
+       4 index 10 index eq and	% compare params
468
+       1 index 7 index eq and	% compare fontindex
469
+	{
470
+          CMAPDEBUG { (merge!\n) print } if
471
+	  pop 4 2 roll pop pop
472
+           % prefix params keys value fontindex keys2 value2
473
+	  5 -1 roll 3 -1 roll concatstrings
474
+           % prefix params value fontindex value2 keys'
475
+	  4 -1 roll 3 -1 roll concatstrings
476
+           % prefix params fontindex keys' values'
477
+	  3 -1 roll
478
+	} if
479
+     } if % end of 2 (or more) ranges
480
+  } repeat
481
+  counttomark 2 add -1 roll .appendmap
482
+} bind def
483
+
484
+/.endmapvalue {		% <cid> .endmapvalue (hi,lo) .FontIndex
485
+  2 string dup 0 3 index -8 bitshift put	% value
486
+  dup 1 4 -1 roll 255 and put
487
+  .FontIndex		% font_index
488
+} bind def
489
+
490
+% ------ notdef operators ------ %
491
+
492
+/beginnotdefchar {	% <count> beginnotdefchar -
493
+  pop mark
494
+} bind def
495
+/endnotdefchar {	% <code> <cid> ... endnotdefchar -
496
+  2 .endmapchars
497
+} bind def
498
+
499
+/beginnotdefrange {	% <count> beginnotdefrange -
500
+  pop mark
501
+} bind def
502
+/endnotdefrange {	% <code_lo> <code_hi> <cid> ... endnotdefrange -
503
+  2 .endmapranges
504
+} bind def
505
+
506
+% ---------------- Resource category definition ---------------- %
507
+
508
+currentdict end
509
+
510
+languagelevel exch 2 .setlanguagelevel
511
+
512
+/CMap /Generic /Category findresource dup length dict .copydict
513
+dup /InstanceType /dicttype put
514
+dup /DefineResource {
515
+		% The AdobePS5 Windows driver emits code that attempts to
516
+		% create CMaps without the required CMapName entry.
517
+		% Work around this here.
518
+  dup /CMapName known not {
519
+    dup wcheck not {
520
+      .currentglobal exch dup wcheck .setglobal
521
+      dup length dict .copydict exch .setglobal
522
+    } if
523
+    dup gcheck 2 index gcheck not and {
524
+      exch .currentglobal exch //true .setglobal
525
+      dup length string copy exch .setglobal exch
526
+    } if dup /CMapName 3 index put
527
+  } if
528
+  % Adobe PS CET 23-25 and others define an almost empty CMap. Tolerate this.
529
+  % With the above, we can actually tolerate: /name << >> defineresource
530
+  dup /CIDSystemInfo known not {
531
+    dup wcheck not {
532
+      .currentglobal exch dup wcheck .setglobal
533
+      dup length dict .copydict exch .setglobal
534
+    } if
535
+    dup /CIDSystemInfo [ //null ] put
536
+  } if
537
+  dup /CodeMap .knownget { //null eq { .buildcmap } if } if
538
+  /Generic /Category findresource /DefineResource get exec
539
+} bind put
540
+/Category defineresource pop
541
+	% We might have loaded CID font support already.
542
+/CIDInit /ProcSet 2 copy { findresource } .internalstopped
543
+	% An interior `stopped' might have reset VM allocation to local.
544
+//true .setglobal
545
+ { pop pop 3 -1 roll }
546
+ { dup length 4 index length add dict .copydict 4 -1 roll exch .copydict }
547
+ifelse exch defineresource pop
548
+
549
+.setlanguagelevel

+ 180
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cmdl.ps View File

@@ -0,0 +1,180 @@
1
+%    Copyright (C) 1994, 1996, 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cmdl.ps 6300 2005-12-28 19:56:24Z giles $
17
+% Parse and execute the command line.
18
+% C code handles the following switches: -h/-? -I -M -v
19
+
20
+/cmddict 50 dict def
21
+cmddict begin
22
+
23
+% ---------------- Utility procedures ---------------- %
24
+
25
+% Get the next argument from the parsed argument list.
26
+/nextarg		% - nextarg <arg> true
27
+			% - nextarg false
28
+ { argv length 0 eq
29
+    { false }
30
+    { argv dup 0 get exch dup length 1 sub 1 exch getinterval /argv exch def }
31
+   ifelse
32
+ } bind def
33
+
34
+% Run a file, under job control if implemented.
35
+/runjob			% <file> runjob -
36
+ { end		% cmddict
37
+   /startjob where { pop false () startjob pop }
38
+   run
39
+   //cmddict begin
40
+ } bind def
41
+/runfilejob		% <filename> runfilejob -
42
+ { findlibfile { exch pop } { (r) file } runjob
43
+ } bind def
44
+
45
+% Expand arguments.  Free variables: expand@.
46
+/expandarg		% <string> expandarg <args...>
47
+ { dup () eq
48
+    { pop
49
+    }
50
+    { dup dup (--) eq exch (-+) eq or
51
+       { pop /expand@ false def
52
+       }
53
+       { expand@ { (@) anchorsearch } { false } ifelse
54
+	  { pop findlibfile
55
+	     { exch pop }
56
+	     { (r) file }		% let the error happen
57
+	    expandargfile
58
+	  }
59
+	 if
60
+       }
61
+      ifelse
62
+    }
63
+ } bind def
64
+/expandargfile		% <file> expandargfile <args...>
65
+ { [ exch cvlit
66
+    { token not { exit } if
67
+      dup type /stringtype ne { =string cvs dup length string copy } if
68
+      expandarg
69
+    }
70
+   /exec cvx
71
+   ] cvx loop
72
+ } bind def
73
+
74
+% ---------------- Recognized switches ---------------- %
75
+
76
+% Switches with arguments are defined as <x>;
77
+% switches without arguments are defined as -<x>.
78
+
79
+% Switches without arguments
80
+/--
81
+ { nextarg not
82
+    { (-- and -+ require a file name.) = flush }
83
+    { //systemdict /ARGUMENTS argv put /argv [] def runjob }
84
+   ifelse
85
+ } bind def
86
+/-+ /-- load def
87
+/-@ /-- load def
88
+/-A { (@) Z } bind def
89
+/-c
90
+ {  { argv length 0 eq { exit } if
91
+      argv 0 get (-) anchorsearch { pop pop exit } if
92
+      pop nextarg token
93
+       { exch pop			% Probably should check for empty.
94
+	 end exec //cmddict begin
95
+       }
96
+      if
97
+    }
98
+   loop
99
+ } bind def
100
+/-e { (#) Z } bind def
101
+/-E /-e load def
102
+/-f { } def
103
+/-q { //systemdict /QUIET true put } bind def
104
+
105
+% Switches with arguments
106
+/d
107
+ { (=) search not { (#) search not { () exch dup } if } if
108
+   exch pop cvn dup where
109
+    { pop (Redefining ) print print ( is not allowed.) = flush pop }
110
+    { exch token
111
+       { exch pop }		% Probably should check for empty.
112
+       { true }
113
+      ifelse
114
+      //systemdict 3 1 roll put
115
+    }
116
+   ifelse
117
+ } bind def
118
+/D /d load def
119
+/f { dup length 0 ne { runfilejob } if } bind def
120
+/g
121
+ { (x) search { cvi pop exch cvi } { cvi dup } ifelse
122
+   //systemdict begin /DEVICEHEIGHT exch def /DEVICEWIDTH exch def end
123
+ } bind def
124
+/r
125
+ { (x) search { cvr pop exch cvr } { cvr dup } ifelse
126
+   //systemdict begin /DEVICEYRESOLUTION exch def /DEVICEXRESOLUTION exch def end
127
+ } bind def
128
+/s
129
+ { (=) search not { (#) search not { () exch dup } if } if
130
+   exch pop cvn dup where { pop dup load } { () } ifelse
131
+   type /stringtype ne
132
+    { (Redefining ) print print ( is not allowed.) = flush pop }
133
+    { exch //systemdict 3 1 roll put }
134
+   ifelse
135
+ } bind def
136
+/S /s load def
137
+/Z { true .setdebug } bind def
138
+
139
+% ---------------- Main program ---------------- %
140
+
141
+% We process the command line in two passes.  In the first pass,
142
+% we read and expand any @-files as necessary.  The second pass
143
+% does the real work.
144
+
145
+/cmdstart
146
+ { //cmddict begin
147
+   /expand@ true def
148
+   [
149
+		% Process the GS_OPTIONS environment variable.
150
+   (GS_OPTIONS) getenv { 0 () /SubFileDecode filter expandargfile } if
151
+		% Process the actual command line.
152
+   .getargv { expandarg } forall
153
+   ] readonly /argv exch def
154
+		% Now interpret the commands.
155
+    { nextarg not { exit } if
156
+      dup 0 get (-) 0 get eq
157
+       { dup length 1 eq
158
+	  { pop (%stdin) (r) file runjob
159
+	  }
160
+	  { dup length 2 gt
161
+	     { dup dup length 2 sub 2 exch getinterval exch 1 1 getinterval }
162
+	    if currentdict .knownget
163
+	     { exec
164
+	     }
165
+	     { (Ignoring unknown switch ) print
166
+	       dup length 1 eq { (-) print print } if print
167
+	       () = flush
168
+	     }
169
+	    ifelse
170
+	  }
171
+	 ifelse
172
+       }
173
+       { runfilejob
174
+       }
175
+      ifelse
176
+    }
177
+   loop end
178
+ } bind def
179
+
180
+end		% cmddict

+ 190
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_cspace.ps View File

@@ -0,0 +1,190 @@
1
+%    Copyright (C) 2002 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_cspace.ps 10566 2009-12-29 01:17:48Z alexcher $
17
+% basic colorspace mechanism
18
+
19
+%
20
+% There have been some major changes to the PostScript colour handling.
21
+% In particular, the vast majority of the colour space code has been
22
+% converted from PostScript to C. This file has been extensively
23
+% modified, as has gs_icc.ps. The remaining PostScript files which 
24
+% previously implemented colour space handling; gs_ciecs2.ps, gs_ciecs3.ps
25
+% gs_devcs.ps, gs_devn.ps, gs_devpxl.ps, gs_indxd.ps, gs_patrn.ps and
26
+% gs_sepr.ps have been superceded by the C code and removed.
27
+%
28
+% gs_lev2.ps and gs_ll3.ps have also been modified so that they no longer
29
+% attempt to execute these PostScript files.
30
+%
31
+.currentglobal true .setglobal
32
+systemdict begin
33
+
34
+%
35
+% gs_res.ps, and possibly other files, use this dictionary. Formerly
36
+% in cspace_util, moved to systemdict.
37
+%
38
+20 dict dup /colorspacedict exch def
39
+
40
+begin % colorspacedict
41
+
42
+%
43
+% gs_res.ps uses these entries in colorspacedict
44
+% to populate the ColorSpaceFamily resource, so we need
45
+% to add the supported spaces.
46
+%
47
+/DeviceGray [] def
48
+/DeviceRGB [] def
49
+/DeviceCMYK [] def
50
+end % colorspacedict
51
+
52
+%
53
+% Global, read-only, unpacked, array-form device color spaces
54
+% We need to return an array argument in response to currentcolorspace
55
+% even if the argument presented to setcolorspace was a simple device
56
+% space name. Not only that, but in order to satisfy some Adobe
57
+% applications, it must be the *same* array every time. The only way
58
+% to do that is to define an appropriate set initial arrays and always return 
59
+% one of those. These arrays are defined here.
60
+%
61
+/DeviceGray_array /DeviceGray 1 array astore readonly def
62
+/DeviceRGB_array  /DeviceRGB  1 array astore readonly def
63
+/DeviceCMYK_array /DeviceCMYK 1 array astore readonly def
64
+
65
+%
66
+%   -   initgraphics   -
67
+%
68
+% The internal routine gs_initgraphics doesn't (re)set the color space,
69
+% so we must redefine the operation to do it here.
70
+%
71
+%
72
+/initgraphics
73
+  { initgraphics systemdict /DeviceGray_array get setcolorspace }
74
+.bind odef 
75
+
76
+
77
+%
78
+% These routines used for the NOSUBSTDEVICECOLORS switch. This prevents 
79
+% substitution of DeviceGray, DeviceRGB and DeviceCMYK with a Default*
80
+% colour space when /UseCIEColors is true. If the job includes a
81
+% definition of /DefaltGray, DefaultRGB or DefaultCMYK then it also executes
82
+% .includecolorspace to allow the device to record the substitute space.
83
+%
84
+/..page_default_spaces 3 dict def
85
+
86
+%
87
+% Used internally to retrieve any relevant default colour space.
88
+%
89
+% <Default space name> ..nosubstdevicetest false
90
+%                                          <Default space name> [space] true
91
+%
92
+% If the boolean is true then the C code must set the additional colour space
93
+% and execute .includecolorspace before finally setting a DeviceGray space.
94
+%
95
+/..nosubstdevicetest
96
+{
97
+  false mark 3 -1 roll
98
+  % If we have already recorded this space, don't repeat it.
99
+  systemdict /..page_default_spaces get 1 index known {
100
+    cleartomark
101
+  } {
102
+    {
103
+      % Check to see if this space was defined by defineresource, if so then 
104
+      % the job defined it, otherwise its the usual default, so ignore it. 
105
+      dup /ColorSpace resourcestatus {
106
+        pop 0 eq {
107
+		  % Default* defined by defineresource
108
+          systemdict /..page_default_spaces get 1 index //true put
109
+		  dup /ColorSpace findresource 4 2 roll pop pop true 
110
+        }{
111
+          cleartomark
112
+        } ifelse
113
+      }{
114
+        cleartomark
115
+      } ifelse
116
+    } stopped
117
+    {cleartomark}if
118
+  } ifelse
119
+}bind def
120
+
121
+%
122
+% <color_space_name> ..includecolorspace -
123
+%
124
+/..includecolorspace
125
+{ 
126
+  % If we have already recorded this space, don't repeat it.
127
+  systemdict /..page_default_spaces get 1 index known {
128
+    pop
129
+  } {
130
+    mark exch
131
+    {
132
+    % Check to see if this space was defined by defineresource, if so then 
133
+    % the job defined it, otherwise its the usual default, so ignore it. 
134
+    dup /ColorSpace resourcestatus {
135
+        pop 0 eq {
136
+          % Job defined /Default*, so record it and allow the device access to it
137
+          systemdict /..page_default_spaces get 1 index //true put
138
+          gsave
139
+          { dup /ColorSpace findresource //setcolorspace exec .includecolorspace
140
+          } stopped pop
141
+          grestore
142
+        } if
143
+      } if
144
+    } stopped pop
145
+    cleartomark
146
+  } ifelse
147
+} bind def
148
+
149
+%
150
+% <color_space> <color_space_name> cs_substitute_generic <color_space1> <color_space2>
151
+%
152
+/cs_substitute_generic
153
+{ .getuseciecolor
154
+    {NOSUBSTDEVICECOLORS 
155
+        { //..includecolorspace exec dup }
156
+        { /ColorSpace findresource }
157
+      ifelse
158
+    }
159
+    { pop dup }
160
+  ifelse
161
+}
162
+bind def
163
+
164
+%
165
+% <color_space> <color_space_name> cs_substitute_DeviceRGB_for_PDFX_or_PDFA <color_space1> <color_space2>
166
+%
167
+/cs_substitute_DeviceRGB_for_PDFX_or_PDFA
168
+{ systemdict /PDFX .knownget not { false } if
169
+  systemdict /PDFA .knownget not { false } if
170
+  or {
171
+    dup /ColorSpace resourcestatus {
172
+      pop pop
173
+    } {
174
+      (Error: Need a /DefaultRGB /ColorSpace resource for generating a PDF/X or PDF/A document.) =
175
+      /cs_substitute_DeviceRGB_for_PDFX_or_PDFA cvx /undefined signalerror
176
+    } ifelse
177
+    /ColorSpace findresource
178
+  } {
179
+    //cs_substitute_generic exec
180
+  } ifelse   
181
+} bind def
182
+end 
183
+
184
+%
185
+% Set the initial device space
186
+%
187
+systemdict /DeviceGray_array get setcolorspace
188
+
189
+
190
+.setglobal

+ 114
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_css_e.ps View File

@@ -0,0 +1,114 @@
1
+%    Copyright (C) 1999 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_css_e.ps 8954 2008-08-08 04:22:38Z ray $
17
+% Define the CFF StandardStrings that represent characters.
18
+% This is a pseudo-encoding.
19
+/currentglobal where
20
+ { pop currentglobal { setglobal } true setglobal }
21
+ { { } }
22
+ifelse
23
+/CFFStandardStrings mark
24
+
25
+% 0
26
+  /.notdef /space /exclam /quotedbl /numbersign
27
+  /dollar /percent /ampersand /quoteright /parenleft
28
+  /parenright /asterisk /plus /comma /hyphen
29
+  /period /slash /zero /one /two
30
+  /three /four /five /six /seven
31
+  /eight /nine /colon /semicolon /less
32
+  /equal /greater /question /at /A
33
+  /B /C /D /E /F
34
+  /G /H /I /J /K
35
+  /L /M /N /O /P
36
+% 50
37
+  /Q /R /S /T /U
38
+  /V /W /X /Y /Z
39
+  /bracketleft /backslash /bracketright /asciicircum /underscore
40
+  /quoteleft /a /b /c /d
41
+  /e /f /g /h /i
42
+  /j /k /l /m /n
43
+  /o /p /q /r /s
44
+  /t /u /v /w /x
45
+  /y /z /braceleft /bar /braceright
46
+  /asciitilde /exclamdown /cent /sterling /fraction
47
+% 100
48
+  /yen /florin /section /currency /quotesingle
49
+  /quotedblleft /guillemotleft /guilsinglleft /guilsinglright /fi
50
+  /fl /endash /dagger /daggerdbl /periodcentered
51
+  /paragraph /bullet /quotesinglbase /quotedblbase /quotedblright
52
+  /guillemotright /ellipsis /perthousand /questiondown /grave
53
+  /acute /circumflex /tilde /macron /breve
54
+  /dotaccent /dieresis /ring /cedilla /hungarumlaut
55
+  /ogonek /caron /emdash /AE /ordfeminine
56
+  /Lslash /Oslash /OE /ordmasculine /ae
57
+  /dotlessi /lslash /oslash /oe /germandbls
58
+% 150
59
+  /onesuperior /logicalnot /mu /trademark /Eth
60
+  /onehalf /plusminus /Thorn /onequarter /divide
61
+  /brokenbar /degree /thorn /threequarters /twosuperior
62
+  /registered /minus /eth /multiply /threesuperior
63
+  /copyright /Aacute /Acircumflex /Adieresis /Agrave
64
+  /Aring /Atilde /Ccedilla /Eacute /Ecircumflex
65
+  /Edieresis /Egrave /Iacute /Icircumflex /Idieresis
66
+  /Igrave /Ntilde /Oacute /Ocircumflex /Odieresis
67
+  /Ograve /Otilde /Scaron /Uacute /Ucircumflex
68
+  /Udieresis /Ugrave /Yacute /Ydieresis /Zcaron
69
+% 200
70
+  /aacute /acircumflex /adieresis /agrave /aring
71
+  /atilde /ccedilla /eacute /ecircumflex /edieresis
72
+  /egrave /iacute /icircumflex /idieresis /igrave
73
+  /ntilde /oacute /ocircumflex /odieresis /ograve
74
+  /otilde /scaron /uacute /ucircumflex /udieresis
75
+  /ugrave /yacute /ydieresis /zcaron /exclamsmall
76
+  /Hungarumlautsmall /dollaroldstyle /dollarsuperior /ampersandsmall /Acutesmall
77
+  /parenleftsuperior /parenrightsuperior /twodotenleader /onedotenleader /zerooldstyle
78
+  /oneoldstyle /twooldstyle /threeoldstyle /fouroldstyle /fiveoldstyle
79
+  /sixoldstyle /sevenoldstyle /eightoldstyle /nineoldstyle /commasuperior
80
+% 250
81
+  /threequartersemdash /periodsuperior /questionsmall /asuperior /bsuperior
82
+  /centsuperior /dsuperior /esuperior /isuperior /lsuperior
83
+  /msuperior /nsuperior /osuperior /rsuperior /ssuperior
84
+  /tsuperior /ff /ffi /ffl /parenleftinferior
85
+  /parenrightinferior /Circumflexsmall /hyphensuperior /Gravesmall /Asmall
86
+  /Bsmall /Csmall /Dsmall /Esmall /Fsmall
87
+  /Gsmall /Hsmall /Ismall /Jsmall /Ksmall
88
+  /Lsmall /Msmall /Nsmall /Osmall /Psmall
89
+  /Qsmall /Rsmall /Ssmall /Tsmall /Usmall
90
+  /Vsmall /Wsmall /Xsmall /Ysmall /Zsmall
91
+% 300
92
+  /colonmonetary /onefitted /rupiah /Tildesmall /exclamdownsmall
93
+  /centoldstyle /Lslashsmall /Scaronsmall /Zcaronsmall /Dieresissmall
94
+  /Brevesmall /Caronsmall /Dotaccentsmall /Macronsmall /figuredash
95
+  /hypheninferior /Ogoneksmall /Ringsmall /Cedillasmall /questiondownsmall
96
+  /oneeighth /threeeighths /fiveeighths /seveneighths /onethird
97
+  /twothirds /zerosuperior /foursuperior /fivesuperior /sixsuperior
98
+  /sevensuperior /eightsuperior /ninesuperior /zeroinferior /oneinferior
99
+  /twoinferior /threeinferior /fourinferior /fiveinferior /sixinferior
100
+  /seveninferior /eightinferior /nineinferior /centinferior /dollarinferior
101
+  /periodinferior /commainferior /Agravesmall /Aacutesmall /Acircumflexsmall
102
+% 350
103
+  /Atildesmall /Adieresissmall /Aringsmall /AEsmall /Ccedillasmall
104
+  /Egravesmall /Eacutesmall /Ecircumflexsmall /Edieresissmall /Igravesmall
105
+  /Iacutesmall /Icircumflexsmall /Idieresissmall /Ethsmall /Ntildesmall
106
+  /Ogravesmall /Oacutesmall /Ocircumflexsmall /Otildesmall /Odieresissmall
107
+  /OEsmall /Oslashsmall /Ugravesmall /Uacutesmall /Ucircumflexsmall
108
+  /Udieresissmall /Yacutesmall /Thornsmall /Ydieresissmall
109
+% 379 = end
110
+
111
+counttomark packedarray exch pop
112
+10 1 index .registerencoding
113
+.defineencoding
114
+exec

+ 59
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_dbt_e.ps View File

@@ -0,0 +1,59 @@
1
+%    Copyright (C) 1993, 1994 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_dbt_e.ps 8954 2008-08-08 04:22:38Z ray $
17
+% Define the Dingbats encoding vector.
18
+/currentglobal where
19
+ { pop currentglobal { setglobal } true setglobal }
20
+ { { } }
21
+ifelse
22
+/DingbatsEncoding
23
+% \000
24
+    StandardEncoding 0 32 getinterval aload pop		% /.notdef
25
+% \040
26
+    /space /a1 /a2 /a202 /a3 /a4 /a5 /a119
27
+    /a118 /a117 /a11 /a12 /a13 /a14 /a15 /a16
28
+    /a105 /a17 /a18 /a19 /a20 /a21 /a22 /a23
29
+    /a24 /a25 /a26 /a27 /a28 /a6 /a7 /a8
30
+% \100
31
+    /a9 /a10 /a29 /a30 /a31 /a32 /a33 /a34
32
+    /a35 /a36 /a37 /a38 /a39 /a40 /a41 /a42
33
+    /a43 /a44 /a45 /a46 /a47 /a48 /a49 /a50
34
+    /a51 /a52 /a53 /a54 /a55 /a56 /a57 /a58
35
+% \140
36
+    /a59 /a60 /a61 /a62 /a63 /a64 /a65 /a66
37
+    /a67 /a68 /a69 /a70 /a71 /a72 /a73 /a74
38
+    /a203 /a75 /a204 /a76 /a77 /a78 /a79 /a81
39
+    /a82 /a83 /a84 /a97 /a98 /a99 /a100 /.notdef
40
+% \200
41
+    StandardEncoding 0 32 getinterval aload pop		% /.notdef
42
+% \240
43
+    /.notdef /a101 /a102 /a103 /a104 /a106 /a107 /a108
44
+    /a112 /a111 /a110 /a109 /a120 /a121 /a122 /a123
45
+    /a124 /a125 /a126 /a127 /a128 /a129 /a130 /a131
46
+    /a132 /a133 /a134 /a135 /a136 /a137 /a138 /a139
47
+% \300
48
+    /a140 /a141 /a142 /a143 /a144 /a145 /a146 /a147
49
+    /a148 /a149 /a150 /a151 /a152 /a153 /a154 /a155
50
+    /a156 /a157 /a158 /a159 /a160 /a161 /a163 /a164
51
+    /a196 /a165 /a192 /a166 /a167 /a168 /a169 /a170
52
+% \340
53
+    /a171 /a172 /a173 /a162 /a174 /a175 /a176 /a177
54
+    /a178 /a179 /a193 /a180 /a199 /a181 /a200 /a182
55
+    /.notdef /a201 /a183 /a184 /a197 /a185 /a194 /a198
56
+    /a186 /a195 /a187 /a188 /a189 /a190 /a191 /.notdef
57
+256 packedarray .defineencoding
58
+3 DingbatsEncoding .registerencoding
59
+exec

+ 224
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_diskf.ps View File

@@ -0,0 +1,224 @@
1
+%    Copyright (C) 1996 Aladdin Enterprises.  All rights reserved.
2
+% 
3
+% This software is provided AS-IS with no warranty, either express or
4
+% implied.
5
+% 
6
+% This software is distributed under license and may not be copied,
7
+% modified or distributed except as expressly authorized under the terms
8
+% of the license contained in the file LICENSE in this distribution.
9
+% 
10
+% For more information about licensing, please refer to
11
+% http://www.ghostscript.com/licensing/. For information on
12
+% commercial licensing, go to http://www.artifex.com/licensing/ or
13
+% contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14
+% San Rafael, CA  94903, U.S.A., +1(415)492-9861.
15
+
16
+% $Id: gs_diskf.ps 8954 2008-08-08 04:22:38Z ray $
17
+% Support for converting Type 1 fonts without eexec encryption to
18
+% Type 4 fonts that load individual character outlines on demand.
19
+
20
+% If DISKFONTS is true, we load individual CharStrings as they are needed.
21
+% (This is intended primarily for machines with very small memories.)
22
+% Initially, the character definition is the file position of the definition;
23
+% this gets replaced with the actual CharString.
24
+% Note that if we are loading characters lazily, CharStrings is writable.
25
+
26
+% _Cstring must be long enough to hold the longest CharString for
27
+% a character defined using seac.  This is lenIV + 4 * 5 (for the operands
28
+% of sbw, assuming div is not used) + 2 (for sbw) + 3 * 5 (for the operands
29
+% of seac other than the character codes) + 2 * 2 (for the character codes)
30
+% + 2 (for seac), i.e., lenIV + 43.
31
+
32
+/_Cstring 60 string def
33
+
34
+% When we initially load the font, we call
35
+%	<index|charname> <length> <readproc> cskip_C
36
+% to skip over each character definition and return the file position instead.
37
+% This substitutes for the procedure
38
+%	<index|charname> <length> string currentfile exch read[hex]string pop
39
+%	  [encrypt]
40
+% What we actually store in the CharString is fileposition * 1000 + length,
41
+%   negated if the string is stored in binary form.
42
+
43
+/cskip_C
44
+ { exch dup 1000 ge 3 index type /nametype ne or
45
+    { % This is a Subrs string, or the string is so long we can't represent
46
+      % its length.  Load it now.
47
+      exch exec
48
+    }
49
+    { % Record the position and length, and skip the string.
50
+      dup currentfile fileposition 1000 mul add
51
+      2 index 3 get /readstring cvx eq { neg } if
52
+      3 1 roll
53
+      dup _Cstring length idiv
54
+       { currentfile _Cstring 3 index 3 get exec pop pop
55
+       } repeat
56
+      _Cstring length mod _Cstring exch 0 exch getinterval
57
+      currentfile exch 3 -1 roll 3 get exec pop pop
58
+    }
59
+   ifelse
60
+ } bind def
61
+
62
+% Load a CharString from the file.  The font is the top entry
63
+% on the dictionary stack.
64
+/load_C		% <charname> <fileposandlength> load_C -
65
+ { dup abs 1000 idiv FontFile exch setfileposition
66
+   CharStrings 3 1 roll
67
+   .currentglobal CharStrings .gcheck .setglobal exch
68
+   dup 0 lt
69
+    { neg 1000 mod string FontFile exch readstring }
70
+    { 1000 mod string FontFile exch readhexstring }
71
+   ifelse pop
72
+   exch .setglobal
73
+% If the CharStrings aren't encrypted on the file, encrypt now.
74
+   Private /-| get 0 get
75
+   dup type /nametype ne
76
+    { dup length 5 sub 5 exch getinterval exec }
77
+    { pop }
78
+   ifelse dup 4 1 roll put
79
+% If the character is defined with seac, load its components now.
80
+   mark exch seac_C
81
+   counttomark
82
+    { StandardEncoding exch get dup CharStrings exch get
83
+      dup type /integertype eq { load_C } { pop pop } ifelse
84
+    } repeat
85
+   pop		% the mark
86
+ } bind def
87
+
88
+/seac_C		% <charstring> seac_C <achar> <bchar> ..or nothing..
89
+ { dup length _Cstring length le
90
+    { 4330 exch _Cstring .type1decrypt exch pop
91
+      dup dup length 2 sub 2 getinterval <0c06> eq	% seac
92
+       { dup length
93
+         Private /lenIV known { Private /lenIV get } { 4 } ifelse
94
+	 exch 1 index sub getinterval
95
+% Parse the string just enough to extract the seac information.
96
+% We assume that the only possible operators are hsbw, sbw, and seac,
97
+% and that there are no 5-byte numbers.
98
+	 mark 0 3 -1 roll
99
+	  { exch
100
+	     { { dup 32 lt
101
+	          { pop 0 }
102
+		  { dup 247 lt
103
+		     { 139 sub 0 }
104
+		     { dup 251 lt
105
+			{ 247 sub 256 mul 108 add 1 1 }
106
+			{ 251 sub -256 mul -108 add -1 1 }
107
+		       ifelse
108
+		     }
109
+		    ifelse
110
+		  }
111
+		 ifelse
112
+	       }			% 0
113
+	       { mul add 0 }		% 1
114
+	     }
115
+	    exch get exec
116
+	  }
117
+	 forall pop
118
+	 counttomark 1 add 2 roll cleartomark	% pop all but achar bchar
119
+       }
120
+       { pop	% not seac
121
+       }
122
+      ifelse
123
+    }
124
+    { pop	% punt
125
+    }
126
+   ifelse
127
+ } bind def
128
+
129
+% Define replacement procedures for loading fonts.
130
+% If DISKFONTS is true and the body of the font is not encrypted with eexec:
131
+%    - Prevent the CharStrings from being made read-only.
132
+%    - Substitute a different CharString-reading procedure.
133
+% (eexec disables this because the implicit 'systemdict begin' hides
134
+% the redefinitions that make the scheme work.)
135
+% We assume that:
136
+%    - The magic procedures (-|, -!, |-, and |) are defined with
137
+%	executeonly or readonly;
138
+%    - The contents of the reading procedures are as defined in bdftops.ps;
139
+%    - The font includes the code
140
+%	<font> /CharStrings <CharStrings> readonly put
141
+/.loadfontdict 6 dict def mark
142
+ /begin			% push this dict after systemdict
143
+  { dup begin
144
+    //systemdict eq { //.loadfontdict begin } if
145
+  } bind
146
+ /end			% match begin
147
+  { currentdict end
148
+    //.loadfontdict eq currentdict //systemdict eq and { end } if
149
+  } bind
150
+ /dict			% leave room for FontFile, BuildChar, BuildGlyph
151
+  { 3 add dict
152
+  } bind
153
+ /executeonly		% for reading procedures
154
+  { readonly
155
+  }
156
+ /noaccess		% for Subrs strings and Private dictionary
157
+  { readonly
158
+  }
159
+ /readonly		% for procedures and CharStrings dictionary
160
+  {	% We want to take the following non-standard actions here:
161
+  	%   - If the operand is the CharStrings dictionary, do nothing;
162
+	%   - If the operand is a number (a file position replacing the
163
+	%	actual CharString), do nothing;
164
+	%   - If the operand is either of the reading procedures (-| or -!),
165
+	%	substitute a different one.
166
+    dup type /dicttype eq		% CharStrings or Private
167
+    count 2 gt and
168
+     { 1 index /CharStrings ne { readonly } if }
169
+     { dup type /arraytype eq		% procedure or data array
170
+	{ dup length 5 ge 1 index xcheck and
171
+	   { dup 0 get /string eq
172
+	     1 index 1 get /currentfile eq and
173
+	     1 index 2 get /exch eq and
174
+	     1 index 3 get dup /readstring eq exch /readhexstring eq or and
175
+	     1 index 4 get /pop eq and
176
+	      { /cskip_C cvx 2 packedarray cvx
177
+	      }
178
+	      { readonly
179
+	      }
180
+	     ifelse
181
+	   }
182
+	   { readonly
183
+	   }
184
+	  ifelse
185
+	}
186
+	{ dup type /stringtype eq	% must be a Subr string
187
+	   { readonly }
188
+	  if
189
+	}
190
+       ifelse
191
+     }
192
+    ifelse
193
+  } bind
194
+ /definefont		% to insert BuildChar/Glyph and change FontType
195
+  { dup /FontType get 1 eq
196
+     { dup /FontType 4 put
197
+       dup /BuildChar /build_C load put
198
+       dup /BuildGlyph /build_C load put
199
+     }
200
+    if definefont
201
+  } bind
202
+counttomark 2 idiv { .loadfontdict 3 1 roll put } repeat pop
203
+.loadfontdict readonly pop
204
+
205
+% Define the BuildChar and BuildGlyph procedures for modified fonts.
206
+% A single procedure serves for both.
207
+/build_C		% <font> <code|name> build_C -
208
+ { 1 index begin
209
+   dup dup type /integertype eq { Encoding exch get } if
210
+		% Stack: font code|name name
211
+   dup CharStrings exch .knownget not
212
+    { 2 copy eq { exch pop /.notdef exch } if
213
+      QUIET not
214
+       { (Substituting .notdef for ) print = flush }
215
+       { pop }
216
+      ifelse
217
+      /.notdef CharStrings /.notdef get
218
+    } if
219
+		% Stack: font code|name name charstring   
220
+   dup type /integertype eq
221
+    { load_C end build_C }
222
+    { end .type1execchar }
223
+   ifelse
224
+ } bind def

+ 0
- 0
XHWK.WKTool/PrintTool/Ghostscript/gs8.71/lib/gs_diskn.ps View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save