KID's World
 

おしながき
トップページ
プログラミング
研究
いんすぴ
色日記
ソフトウェア
KID's Worldの歴史
リンク
小出俊夫について


PDFをフリーソフトで「快適に」作る

 

 PDFについて説明は必要ないと思うので、なんなのかについては省略。

 PDFを作るにはいろいろな方法があります。お金があれば、AdobeのAcrobatを買ってくれば作れます。でもお金をかけないことが自分のポリシーなので、ここは何とかPDFをただで作ってみたいと思うわけです。

 フリーできれいなPDFを作るなら、やっぱり、TeXを使うということになるのでしょうか。最近はWindows上でも結構便利に使えるようになりましたし、多くの人たちの協力によって、日本語の対応も進んできました。とりあえず、「dviout」とか、「dvipdfm」とかで検索してみてください。

 でも、普通の人は、Acrobatのように、WordやExcelなどの文書をPDFにしたいと思うはずです。ではそれを実現するにはどうしたらいいのか。詳しく書きたいけど、時間ないのでとりあえずは基本的なところだけをざざっと書きます。

 

まずはPostScriptファイルに変換する。

 ネットでいろいろと検索してみると、フリーでPDFを作ろうとする場合は、まずPostScript形式のファイル(以下PSファイル)に変換して、それをPDFに変換するという方法が一般的のようです。

 ではまずは、PSファイルを作る方法については解説しましょう。いろいろ方法がありますが、Windows2000とかXPを使っているのならソフトをどこからかダウンロードしてくる必要はありません。プリンタの追加で、「Apple Color LeserWriter 12/600J」などPostScriptプリンタ用のドライバをインストールします。ここで、ポートはプリンタポートではなくて、「FILE」ポートにします。そうすることで、Word等の文章をこのプリンタに向けて印刷すると、PSファイルが出来上がるというわけです。

 

そして、PDFに変換する。

 つぎに、PSファイルをPDFファイルに変換します。これには「Ghostscript」を使うのが一般的です。私は、GNU Ghostscript 7.05を使っています。これをインストールして、できあがったbinディレクトリとlibディレクトリにパスを通します(パスの通し方はFAQだから自分で調べて)。

 すると、「ps2pdf」というコマンドが使えるようになります。たとえば「test.ps」というPSファイルがあったら、

ps2pdf test.ps
とすることによって、test.pdfファイルが作られます。この時点でもうPSファイルは削除してかましません。こうして作られたPDFファイルを、こちらにおいておきます。

 

クオリティを求める

 このやり方だと、時々「ビットマップフォント」が埋め込まれてしまい、見た目がたがたの汚いPDFになってしまう場合があります(特に日本語フォント)。これを防ぐには、プリンタドライバの設定を変えてやります。プリンタドライバの印刷設定の中に、さらに詳細設定できる場所があります。ここで、「TrueTypeフォント」を「デバイスフォントと代替」ではなくて、「ソフトフォントとしてダウンロード」にします。さらに「PostScriptオプションの、「TrueTypeフォントダウンロードオプション」の欄を「アウトライン」に設定します。これで、PSファイルにアウトラインフォントが埋め込まれるので、PDFもアウトラインで作成されるようになります。これでかなりきれいなPDFファイルが作成できます。

 ただし、英語のTimes New Romanとか、Arialとかの標準的なフォントだけを使うのであれば、「TrueTypeフォント」を「デバイスフォントと代替」にしたほうが良いです。そうすると、できあがったPDFにはフォントは埋め込まれずに、Acrobatが対応するフォントを使って表示するので、ファイルサイズは小さくなるし、きれいです。例として、このWord文書をPDFに変換するとき、フォントを埋め込まなかったものと、埋め込んだものをそれぞれおいておきます。サイズやフォント情報を比較してみてください。かなりの違いがありますよ。

 

PDF出力用のプリンタを作る!

 しかし、一度PSファイルを作らなければならないし、コマンドラインにコマンドを打ち込まなければならないのというのは不便です。PSファイルを右クリックしてでてくるメニューに「PDF」という項目を追加して…なんてこともできないわけではないですが…それでもまだ面倒くさい。

 製品版のAcrobatでは、印刷したら直接PDFファイルができあがるんですが、これをなんとかフリーソフトでできないかと思っていたら、使えそうなのが見つかりました。その名も「RedMon」です。別に探したわけじゃなくて、GhostScriptをAFPLからGNUにしようと思っていろいろみていたら、GhostScriptのページからリンクが貼ってあって、「これだ!」って(笑)

 Redirection Port Monitorの略らしくて、ともかく何ができるのかというと、プリンタ用の仮想的なポートがこれで作れるんですね。そしてこれに向けて印刷すると、このRedMonがあらかじめ指定した動作を行うというものです。細かいことは省略しますが、つまり、RedMonにPostScriptを投げつけてやって、それをそのままGhostScriptのpdfwriteデバイスに渡してやることで、PDFファイルが直接出来上がるというわけです。

 これはPDFのプリンタを作るためにできているわけではなくて、あくまでも汎用的な仮想ポートなので、PDF用にカスタマイズするには設定はいろいろとややこしいですが、一度やってしまえばPDFが簡単に作れるようになります。マニュアルにあるやり方でもいいですが、ここでは自己流のやり方を説明します。これならオプションを指定するファイルを作る必要がないです。

 まずファイル(redmon17.zip)をダウンロードしてきて適当なディレクトリに展開します。gsの下でもいいかもしれませんね。そして、setup.exeを実行して、ポートをインストールします。

 次に、PostScriptプリンタドライバをインストールしたのと同じ要領でプリンタドライバをインストールします。ただし、対象のポートを先ほどインストールしたRedMonのポートにします。これはポートを選ぶときに「新しいポートの作成」で「Redirected Port」を選ぶことで作成されます。ポート名は何でもいいです。「RPT1:」とでてきたらそのままOKしましょう。プリンタ名は「PDF Printer」とかしておくと、カッコイイかも。

 ただし、これだけでは使えません。流れてくるデータをGhostScriptのpdfwriteデバイスに流す設定をしなければなりません。これは、先ほど作ったPDF Printerのプロパティで「ポート」タブを選び、RPT1の「ポートの構成」ボタンを押します。そして、

Redirect this port to the program:
  C:\gs\gs7.05\bin\gswin32c.exe

Arguments for this program are:
  -Ic:\gs\gs7.05\lib;c:\gs\fonts -sDEVICE=pdfwrite -r300 -dNOPAUSE
  -dSAFER -sPAPERSIZE=a4 -sOutputFile="%1" -c .setpdfwrite -f -

Output:
  Prompt for filename

Run:
  Minimize
とします。「Arguments〜」の欄は二行になってますが、見易さのためなので一行にしてください。ディレクトリなどは環境によって変わるので注意。細かい意味はRedMonやGhostScriptのマニュアルを調べれば分かると思います。あとはTrueTypeフォント埋め込みの設定などをすればおしまいです。PDF Printerに印刷してみてください。ファイル名が聞かれるので入力すれば、そのファイル名でPDFファイルが出来上がります。

 ブラボー!

 

FreePDFってなに?

 とまぁ、これで無料でPDF作るっていうのはほぼ完成形をみたわけですが、ちょっと気になってRedMonとPDFで検索してみると、やっぱりおんなじことをやってる人は何人かいるみたいですね。まー当たり前か。って、なんか、みんな「FreePDF」っていうソフト使ってるんですけど。使う必要あんのか?いまいち利点がよくわかんないので今のまま使うことにします。

 著作権は全て小出 俊夫にあります。KID's World © 1996-2003 Toshio Koide.

 対応ブラウザについて