#! /usr/bin/perl # # halftone.pl -- PostScript ファイルのハーフトーン周波数を変える # # 0.0: Jul. 22, 1999 by Dai ISHIJIMA (xv-ps-tombow.pl) # 0.1: Jul. 27, 2000 (only halftone) # # 書式 # perl halftone.pl [オプション] [< 入力ファイル] [> 出力ファイル] # # オプション # -x 倍率 ハーフトーン周波数を # プリンタデフォルトの <倍率> 倍に設定する # -f 周波数 ハーフトーン周波数を <周波数> に設定する # # Apple LaserWriter16/600PS2 では 106 lpi がデフォルト。 # LaserPress 2100PS2 では 90 lpi。 # LBP-B406PS では 30 lpi。 # # 印刷できれいに仕上るのは、30〜90 ぐらい。60ぐらいが適当かも # - (もちろん印刷屋に依存するんだけど :-) # $halftone = "ABSOLUTE"; #$halftone = "RELATIVE"; $freq = 60; #$freq = 1.0; if ($ARGV[0] eq '-x') { $halftone = "RELATIVE"; if ($ARGV[1] =~ /[.0-9][.0-9]*/) { $freq = $ARGV[1]; } else { $freq = 1.0; } } elsif ($ARGV[0] eq '-f') { $halftone = "ABSOLUTE"; if ($ARGV[1] =~ /[.0-9][.0-9]*/) { $freq = $ARGV[1]; } else { print STDERR "halftone frequency required\n"; exit 1; } } while () { if (/^%%Page:/) { print ; print <<'EOF'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % アミ点の細かさ %/Halftone 1.0 def % Halftone = 1 : プリンタのデフォルトを使う %/Halftone 1.5 def % Halftone > 1 : デフォルトより細かくする %/Halftone 0.75 def % Halftone < 1 : デフォルトより荒くする % アミ点を細かくする or 荒くする %currentscreen 3 2 roll Halftone mul 3 -2 roll setscreen %currentscreen 3 2 roll pop 60 3 -2 roll setscreen %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF if ($halftone eq "ABSOLUTE") { print "currentscreen 3 2 roll "; print "pop $freq "; print "3 -2 roll setscreen\n"; } else { print "currentscreen 3 2 roll "; print "$freq mul "; print "3 -2 roll setscreen\n"; } print <<'EOF'; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% EOF } else { print; } }