🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: fj.lang.postscript
Article #288

Re: How to add page No. with PS file doc.?

#288
From: Tamito Kajiyama
Date: Sat, 28 Feb 1998 00:00
79 lines
4646 bytes
中京大学大学院情報科学研究科の梶山といいます。

In article <6d8e2c$ck4$1@melon.sainet.or.jp> iketomo@tomato.saino.ne.jp (Tomomi Ikeda) writes:

  |    池田@サイノネットと申します。
  | 
  |    始めて投稿いたします。いつもたいへんお世話になっています。
  |    さて、現在Web page の画面の印刷を、postscript に変換してから
  |    PS printer で印刷をしています。
  |    なんとかこれでページ番号を付けてA4 1ページに2ページ分印刷
  |    したいのです。
  | 
  |    netscape の print で ps file を生成し、A4 1 ページに2ページ
  |    分おさまるようにまた、マージンを5mm付けて、
  | 
  |    psnup -2 -b0.5cm hogehoge.ps |lpr
  | 
  |    として印刷しています。これではぺージ番号が付かず困っています。
  | 
  |    man psnup でいろいろ試してみましたが、うまくいきません。
  |    ページ番号を付ける解決策を教えていただければ幸いです。
  | 
  |    環境:FreeBSD-2.2.5R  Netscape 3.01

僕は以下のようなシェルスクリプトを書いて使っています。別ファイルとして切
り出して実行属性を付け、パスの通ったディレクトリに置いて下さい。

用紙のサイズを A4 にして作った PostScript ファイル (例えば netscape.ps) 
を引数に与えると、出力として netscape-fix.ps というファイルが得られます。
このファイルにはページ番号が振られていますので、あとはこれを psnup -2 で
処理すればよいとおもいます。

バージョン 2.01 ~ 3.04 の Netscape が生成する PostScript ファイルに対し
ては、うまく動作すると思います。 ただし、PostScript ファイル中の特定の文
字列を置換しているため、「どんな PostScript ファイルに対しても有効」とい
うような代物ではありません (同様の方法で対処できるとは思いますが)。

両面印刷するために、最後の2行で偶数ページのみからなるファイルと奇数ペー
ジのみからなるファイルを作成しています。この部分は池田さんの目的からは外
れますので、不要なら削除して下さい。

--------------------ここから--------------------ここから--------------------
#!/bin/sh
#
#  nspagenum - Netscape の「印刷」で作成した PostScript ファイルを修正する
#              (1) クリッピングを行なわないようにする
#              (2) ページ番号をつける
#              (3) 奇数ページと偶数ページを別々のファイルに分割する
#              (4) 奇数ページを右に 1cm 程度移動させる
#
#  nspagenum filename.ps を実行すると、ページ記述が修正され、奇数ページ
#  だけの filename-fix-odd.ps と偶数ページだけの filename-fix-even.ps が
#  作成される。また、中間ファイルとして、奇数ページのシフトを行なってい
#  ない filename-fix.ps が作成される。
#
#  Netscape 2.01、および psutils-2.2 に含まれる psselect を用いて動作を
#  確認した。
#
#  Kajiyama Tamito <30 April 1996>
#
fn=`echo $1|sed 's/\.[pP][sS]$//'`
sed 's/^newpath 0 72 moveto 481 0 rlineto 0 689 rlineto -481 0 rlineto  closepath clip newpath$/newpath/' $1 | awk '\
BEGIN {                                                 \
    num = 1;                                            \
}                                                       \
{                                                       \
    if ($0 ~ /^showpage$/)                              \
        print "287 50 moveto 12 f0 (" num++ ") show";   \
    print;                                              \
}' > ${fn}-fix.ps
psselect -e ${fn}-fix.ps ${fn}-fix-even.ps
psselect -o ${fn}-fix.ps | sed 's/^54 0 translate$/82 0 translate/' > ${fn}-fix-odd.ps
--------------------ここまで--------------------ここまで--------------------

以上、お役にたてば幸いです。

--
KAJIYAMA, Tamito <kajiyama@grad.sccs.chukyo-u.ac.jp>
Technical Details
Message-ID: <KAJIYAMA.98Mar1010610@ws-h4.grad.sccs.chukyo-u.ac.jp>
Path: arc1-ca.pugleaf.net!unknown!not-for-mail
References: <6d8e2c$ck4$1@melon.sainet.or.jp>

Show Full Headers
Complete Article Headers
X-Google-Language: Japanese,JIS
X-Google-Thread: fa2ca,c596f92d358a3ef
X-Google-Attributes: gidfa2ca,public
From: kajiyama@grad.sccs.chukyo-u.ac.jp (Tamito Kajiyama)
Subject: Re: How to add page No. with PS file doc.?
Date: 1998/02/28
Message-ID: <KAJIYAMA.98Mar1010610@ws-h4.grad.sccs.chukyo-u.ac.jp>
X-Deja-AN: 329475015
Sender: news@sk4.stud.sccs.chukyo-u.ac.jp
References: <6d8e2c$ck4$1@melon.sainet.or.jp>
Mime-Version: 1.0 (generated by tm-edit 7.93)
Content-Type: text/plain; charset=ISO-2022-JP
Organization: Graduate School of Computer and Cognitive Sciences, Chukyo University
Newsgroups: fj.lang.postscript