
目次 >> PDF
ここではPDFについていろいろて述べる。
昔からAdobe Acrobat(いわゆるWriter)はバグが多いが、今でも少し複雑なパワーポイントファイルなどを変換しようとすると、意図しない結果となることがままある。
一方、ポストスクリプトプリンタは、多くの場合意図した通りの印刷結果が得られる。
PDFに変換する際に、印刷でAcrobatを選ばず、一端ポストスクリプトプリンタドライバで出力し、それをファイルに保存して、ポストスクリプトファイルからDistillerもしくはps2pdfで変換するとより精度の高い結果が得られる。
手順は下記の通り。
1.ポストスクリプトプリンタを選択し印刷する。その際にファイルに出力するようにする。
2.拡張子がprnとなっているのでそれをpsに変える。
3.このポストスクリプトファイルをAdobe distillerかps2pdfでPDFに変換する。
なお、自分の使っているポストスクリプトプリンタドライバは、しばしばファイルの中にゴミが混じり、PDFに変換できないことがしばしばある。
具体的には、 行頭に"/WhitePoint"とある部分から"def"とある部分までがプリンタ固有の命令のようである。"/WhitePoint"~"def"はページの枚数に応じて複数作られる。そこでこの部分を取り除くPerlスクリプトを作成した。
prn2ps.pl
#!/usr/bin/perl
print "This perl script convert from PS printer output .prn file to .ps file!\n";
$wp=0;
print "processing ";
print $ARGV[0];
open(IN,$ARGV[0]);
print " to ";
$output=$ARGV[0];
$output=~s/.prn$/.ps/;
print $output;
print " ....\n";
open(OUT,">$output");
while ($xx=<IN>) {
if($wp == 0)
{
if($xx =~ /^\/WhitePoint/ )
{
$xx =~ /\]/;
print OUT $`;
print OUT "] >> ]\n";
$wp=1;
}
else
{
print OUT $xx;
}
}
else
{
if($xx =~ /^def / )
{
print OUT $xx;
$wp=0;
}
}
}
close(IN);
close(OUT);
ImageMagickに付属するconvertというプログラムを使う。
ImageMagickは各OS版があるが、それぞれに付属する。
ただし、Windowsで使う場合、OS固有のconvertというコマンドとぶつかるので
パスを通して使おうとする場合には注意が必要である。
使い方は
convert *.jpg foo.pdf
のような形で使う。これにより、フォルダ内のすべてのJPEG画像が
foo.pdfというファイルにまとめられる。
全ページの横のサイズを合わせたい場合は、
convert *.jpg -adaptive-resize 2000 -density 300 foo.pdf
のようにしてやるとよい。
-adaptive-resizeに横の長さを、-densityでDPIを指定する。