BBS水木清华站∶精华区

发信人: thhsieh.bbs@bbs.phys.ntu.edu.tw (居士), 看板: Linux 
标  题: Re: Netscape中如何列印中文网页? 
发信站: 台大物理 冷月流苏BBS驿站 (Fri Jun  6 08:26:09 1997) 
转信站: sobee!netnews.ntu!news.phys.ntu!chdrv2 
 
【 在 SuTseng.bbs@csie.nctu.edu.tw (Blue) 的大作中提到: 】 
 在netscape中使用Save As的功能将中文网页save 成postscript 
 档案格式後,在ghostview下观看都是乱码,无法印出中文,之前有 
 看到一篇网友在此板发的信说可以用转换的方法将netscape所产 
 生的postscript档转成正确的中文显示,但是我现在找不到了...:-( 
 请问有人知道吗? 
 请问在netscape下要印中完整的中文网页的理想方法为何? 
 哪里有参考资料呢? 
 Thanks! 
  
     嗯! 我那时贴的时候没多少人注意,现在再贴一次好了 ....... 
  
  
 ============================================================================= 
  
 各位好! 我写了一个小程式: Ps2CPs v0.1 ,放在 
  
         ftp://freebsd.ee.ntu.edu.tw/upload/unix/ps2cps-0.1.tgz 
         ftp://freebsd.ee.ntu.edu.tw/upload/unix/ps2cps-0.1.readme 
         ftp://linux.cis.nctu.edu.tw/incoming/ps2cps-0.1.tgz 
         ftp://linux.cis.nctu.edu.tw/incoming/ps2cps-0.1.readme 
  
 有兴趣的朋友可以抓回去试试。这个小程式的功能是将原本无法以中文输出的 
 PostScript  档转换成可以以中文输出。以往大家在使用 Netscape 时,直接 
 看中文没问题,但要印出来就有问题了。原因就在於 Netscape 在列印时是先 
 将档案转成 PostScript ,但其输出的 PostScript 却不包含中文字型,这使 
 得原来是中文的部分变成乱码印出。而本程式即为解决此困扰的方案之一。它 
 可以读入 Netscape 所产生的 PostScript 档,将其乱码的部分改以中文字取 
 代之,并将其输出至 stdout,则其输出结果便可送到任何可以印 PostScript 
 文件的印表机列印了。 
  
 目前本程式已在 Netscape-4.0b 及 Netscape-3.01 的输出档下测试过,看起 
 来好像没什麽问题,相信在其他版本下也能正常工作。使用方式很简单。首先 
 将您想印出的 .html 文件以 PostScript 的格式存档,然後用以下指令: 
  
         ps2cps file.ps | lpr -Pps 
                                ^^ 假设这是您的 PostScript 印表机 
   
 即可,或者是 
  
         ps2cps file.ps > file.cps 
  
 则 file.cps 即可在 ghostview 下预览。 
  
 本程式的中文字型部分,目前是使用 HBF 字型,其有关 HBF 字型模组及中文 
 环境在 PostScript 的开头定义是修改自 cnprint-2.60 的原始码,在此我要 
 特别感谢 cnprint 的作者。目前已知使用 kck24.hbf + kcchin24.f02  可以 
 正常工作。 HBF 字型各位可以在各大 ftp 站找到。 
  
 如:     http://NCTUCCCA.edu.tw/Chinese/ifcss/software/fonts/big5/hbf/ 
  
 未来本程式将考虑使用中文 PostScript 字型或者是 CJK  的中文字型,以达 
 到更高品质的输出。 
  
 请注意!!! 本程式尚在初步测试阶段,所以在下对各位不做任何保证! 如果各 
 位在使用时「不幸」造成任何损失,在下不负任何责任。 
  
  
  
 安装 Ps2Cps: 
   
 1. 将 ps2cps-0.1.tgz 解开: 
  
         tar -xvzf ps2cps-0.1.tgz 
  
 2. 看一看 README (即本文件) 
  
 3. 修改 Makefile ,视您的系统修改以下三个变数: 
         BINPATH    : 可执行档 (ps2cps) 的安装路径 
         PS2CPSPATH : Ps2CPs 的资源档路径 
         PS2CPSRC   : Ps2CPs 资源档的名称 
  
 4. 如果您的系统是 FreeBSD 或其他,请视需要再往下修改 Makefile。若是 
    Linux 则不需要了。 
  
 5. make 
    make install 
  
 6. 安装完毕後,会出现一个 filelist 的档案,□头记录了本程式的档案列 
    表,请自行参照。这时,若您还没有 HBF 字型,请自行自各大 ftp 站抓 
    回来安装。每一种 HBF 字型包含两部分,一是字型描述档 .hbf,二是字 
    型位元映象档。以 kck24.hbf 为例,其在档案尾有 
  
         HBF_CODE_RANGE 0xA140-0xA3BF kcchin24.f02 256 
         HBF_CODE_RANGE 0xA3C0-0xA3FE kcchin24.f02 29632 
         HBF_CODE_RANGE 0xA440-0xC67E kcchin24.f02 55336 
         HBF_CODE_RANGE 0xC940-0xF9D5 kcchin24.f02 444208 
  
    这几行,则表示说 kcchin24.f02 为其字型位元映象档,其不要抓错档案 
    了。抓回来後,请将此二档案放在同一个目录下(可以放在任一目录下)。 
  
 7. 修改 Ps2CPs 的资源档。只有三个地方需要修改: 
  
         HBF_PATH:      定义 HBF 字型所在目路 
         HBF_NAME:      定义 HBF 字型的名称 ( .hbf ,不含路径 ) 
         CH_WORD_SHIFT: 定义中文字型位移。 
  
    其中最後一项是用来调整中文字型的位置用的。由於有些中文字型与原本 
    的英文字型可能不在同一水平线上,故可以设此变数以做上下调整。其值 
    为 -1.0 至 +1.0 之间。 
  
 8. 安装完成。各位可以用 example  目录底下的档案进行测试。原来的是 
    thhsieh.html ,经由 Netscape-4.0b 存成 thhsieh.ps 档,用 ghostview 
    看是乱码,再经由 ps2cps thhsieh.ps > thhsieh.cps  转换,即可用 
    ghostview 看到正确的中文字了。 
  
   
  
 Ps2CPs 的参数: 
  
 直接执行 ps2cps 即可列出其参数简表: 
  
 Ps2CPs 0.1:  by Tung-Han Hsieh, 1997 
 Usage: ps2cps [<opts>] <input> 
  Opts: 
    -s#: amount of shift to adjust the Chinese words (-1.0<#<1.0) 
    -h : print this message. 
    -r <rc>  :  resource file name. 
    -f <font>:  HBF font name. 
    -p <path>:  HBF font path. 
 Output: stdout. 
  
 其中 -s#, -f, -p 分别对应於资源档中的 CH_WORD_SHIFT, HBF_NAME 以及 
 HBF_PATH 三变数,直接下参数给 ps2cps  可以盖过其在资源档中的设定。 
 其馀的参数意义应该很明显,也就不再多做说明了。 
  
  
  
 已知 Bug: 
   
 1. 如果原来的文件中同一行□中英文混杂的话,可能会发生中英文字对位 
    不准或字重叠的问题。 
  
 2. 如果其原始的 PostScript 文件超过一页,或其中文字数超过 256 字, 
    有可能造成 ghostview (或 gs) 读取错误。 
  
 3. 目前本程式只支援 Big5 码,其他的码也许在将来的版本会视需要加入。 
  
 4. 目前本程式不支援中文字转 90 度的功能,未来再视需要加入。 
  
  
 以上 Bug 将在往後的版本改善。如果各位朋友发现了其他 Bug ,也请告诉 
 我。 
  
  
  
 版权: 
  
 本程式的版权为在下 
  
         谢东翰,台大物理所,<thhsieh@twclx.phys.ntu.edu.tw> 
  
 所有,其中 HBF 字型模组 (hbf.c) 为 cnprint-2.60 作者所有。 hbf.c 版 
 权部分已获得原作者的同意: 任何人可以修改 hbf.c 的原始码以增进 Ps2CPs 
 的功能或修正其 Bug ,但若要移作其他用途者需要经由原作者: 
  
         Yidao Cai <cai@neurophys.wisc.edu> 
  
 的同意。至於其他部分的原始码,则没有以上的限制,任何人可以任意公开、 
 散播、修改、引用本程式其他部分的原始码,但请不要忘了将在下的草字挂上 
 去哟! 
  
 若您在使用本程式的原始码有困难时,请 Email 给我,我乐意为您提供帮助。 
  
  
  
 本程式尚在发展当中,欢迎各位朋友将您的使用心得或建议告诉我。在此先 
 谢谢各位的批评与指教。 
  
   
 ============================================================================= 
  
     由於最近考试多多,所以一直没有时间将这程式改新版,这程式尚在 alpha-test 
     阶段,可能有不少问题,愿意的话就将就著用吧 ....... 
  
-- 
 
                          ————  居 士  ———— 
 
                    Email: thhsieh@twclx.phys.ntu.edu.tw 
 
※ 来源:.冷月流苏BBS驿站 bbs.phys.ntu.edu.tw.[FROM: twclx.phys.ntu.] 

BBS水木清华站∶精华区