psmergeがうまくいかないので、
gs -q -dNOPAUSE -dBATCH -sDEVICE=pswrite -sOutputFile=出力ファイル名 \
-c save pop -f 元ファイル列
とする。
convert -colorspace GRAY filename.ps filename2.ps
$ bw_convert color.eps bw.eps
PS(EPS)ファイルを、単純で、標準的な、そしてより速い(サイズの小さい) PostScriptファイルに変換する。フォントをアウトライン化するが、フォント サイズが小さいとラスタ化されるので、下記のように解像度を上げて変換する。
eps2eps -r6000 入力.eps 出力.eps
Firefoxの印刷機能で「ファイルに保存」を選んでWebページをhoge.psを出力し、
$ psnup -n 2 hoge.ps fuga.ps $ grep PaperSizes fuga.ps %%DocumentPaperSizes: A4 $ ps2pdf fuga.ps $ pdfinfo fuga.pdf |grep 'Page size' Page size: 612 x 792 pts (letter)
と強制的にletterにされてしまいます。 これを解決するには
$ ps2pdf -sPAPERSIZE='a4' JDS.psとします。-dと-sを間違わないように。
α(アルファ)チャンネルを使った透過機能附きの PNG に EPS を変換する場 合には,
$ gs -q -dSAFER -dNOPAUSE -dBATCH -sDEVICE=pngalpha -dEPSCrop -r600 \ -dTextAlphaBits=4 -dGraphicsAlphaBits=4 -sOutputFile=output.png input.eps
コマンド | 概要 | 例 |
---|---|---|
newpath | 新しいpathを開始 | |
moveto | 描画点の移動(絶対座標)| 72 72 moveto | |
lineto | 線を描く(絶対座標)| 72 144 lineto | |
rlineto | 線を描く(相対座標)| 0 72 rlineto | |
closepath | 自動的にpathを閉じる | |
fill | pathの内部に色を塗る | |
stroke | pathの内部はなし | |
end | 不明。eps特有? | |
showpage | 図形描画の終了宣言 | |
setgray | グレー階調の指定(0-1の値を指定)| 0.8 setgray | |
setrgbcolor | 色指定(RGB)| 1 0 0.5 setrgbcolor | |
setcymkcolor | 色指定(CMYK)gsだとエラー | 0 1 0 0.5 setcymkcolor |
rotate | 回転 | 45 rotate (45度回転) |
for | forループ | 0 10 360 {...} for (0から10刻みで360までまわす) |
translate | 原点の移動(図形を移動させるときに使う) | 72 72 translate |
() | 文字列 | (hoge) show |
clip | 切り取り | |
findfont | フォントの取得 | |
scalefont | フォントサイズ指定 | |
setfont | フォント指定 | |
def | マクロ | /hoge {...} bind def |
matrix | 6個の数字の配列? | |
currentmatrix | CTM, Current Transformation Matrix, をmatrixに与える? | |
setmatrix | CTMをmatrixで置換? | |
neg | 負の値を戻す算術演算子 | |
repeat | 繰り返し | 5 {...} repeat (5回繰り返す) |
%!PS-Adobe-3.0 EPSF-3.0
と書く%%Page 0
または 1
)showpage
の使用は避けるRで出力したepsをpdfにすると、Helveticaが文字化け(中黒で表示される)た め、試行錯誤をした。
%!PS-Adobe-3.0 EPSF-3.0 %%BoundingBox: 0 0 200 200 gsave /Helvetica findfont 12 scalefont setfont 100 100 moveto (Test) show grestore %%EOF
このepsファイルを epstopdf
でpdfファイルに変換すると下記のように、Helveticaを埋め
込まないpdfができる。
$ pdffonts /tmp/test.pdf name type emb sub uni object ID ------------------------------------ ------------ --- --- --- --------- Helvetica Type 1 no no no 9 0
これをLinux版Adobe Readerで開くと正しく表示される
$ convert -type Grayscale color.eps gray.eps
これでもグレー階調化されたepsを得ることができるが、せっかくのベクター が、ラスター化されてしまう。ファイルサイズも100倍近くになった。
ベクター形式を保ちつつグレー階調化するには、bw_convertというPerlスクリ プトを使う。bw_convertは引数にカラーepsファイル名を必要とし、パイプに 対応していたないため、dev.copy2eps()からは直接利用できない。そこで、 bw_convertのアイデアを拝借して、sedで対応する。
> dev.copy2eps(file="| sed -e 's/\bsetrgbcolor\b/add add 3 div setgray/g' > グレー階調.eps")
これでベクター形式の軽いグレー階調epsファイルを得ることができる。
$ sed -e 's/\bsetrgbcolor\b/pop pop pop 0 0 0.6 setrgbcolor/g' \ -e 's/\b1 setgray\b/0 0 0.6 setrgbcolor/g' \ -e 's/\b0 setgray\b/1 setgray/g' \ org.eps > new.eps
変換前 変換後
$ psselect -p1 form2.ps form2-1.ps
1ページ目だけを抽出
pdftopsだと白紙のpsファイルができたので、pdf2psを使う
$ psnup -m1cm -n 2 hou07-281c.ps output.ps # $ pstopnm -xmax 100000 -ymax 100000 -xsize 2100 -ysize 2970 output.ps $ convert -antialias -density 150x150 -rotate 90 output.ps output.jpg $ convert output.jpg eps3:hou07-281c.eps
pstopnmを使うよりconvertを使った方が小回りがきく。psnupでは上端が切れ たので、-m1cmでマージンを追加した。output.psは11MBだが、jpegで圧縮する ことにより、1.3MBにできた。オリジナルのPDFは243KBだったので、改善の余 地があると考えられるが、画像がしなければ11MBのままになったので、今回は やむを得ない(PDFに含まれる画像が伸張してファイルサイズが増大したため)。 ちなみに、-density 100x100にすると651KBに収まる。
けれども、いずれにしても画像が汚い。Linuxでは限界があるのでMacOSXに持っ ていく。MacOSXからLinuxに持ってくると埋め込まれていないフォント部分が 化ける。仕方がないので、MacOSX上でスクリーンショットをとる (Command+Shift+4+Space)、マウスポインタがカメラの絵になるので、スク リーンショットをとりたいWindowsをクリック。キャプチャ画像はDesktopに保 存される。