Twitterに投稿 はてなブックマークに追加 Yahoo!ブックマークに追加 Google Bookmarksに追加

目次 >> PDF

PDFについていろいろ

ここでは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);

JPEGファイルをPDFに変換するには?

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を指定する。



本文中のFC4はFedora ProjectのFedora Core 4を、FC5はFedora Core 5を、FC6はFedora Core 6をopenSUSEはNovellのSUSE Linux OSSを表します。Fedora7以降は、単にFedora7、Fedora8、Fedora9、Fedora10、Fedora11、Fedora12、Fedora13、Fedora14、Fedora15と表示しています。Ubuntuは、必要に応じて10.04、11.04のようにバージョン番号をつけて区別しています。MandrivaはMandriva Linuxを表します。

ここに登場するドメイン名やIPアドレスなどはフィクションです。実在の人物・団体等とは一切関係がありません。
実際に使用する際は、各自の環境に合わせて書き換えてください。
もし何か間違いなどありましたらこちらからご連絡ください
リンクに許可は不要です。
Copyright (C) 2011 Chikuma Engineering Co., Ltd. All Rights Reserved.