Fedora8でPDFを作成する

Windows環境でPDFを作成するとき、たいていはプリンタ指定の要領でPDF化ソフトを選択するが、Linuxでもcups-pdfというパッケージをインストールすれば同様のことができる。

[root@r60e ~]# yum install cups-pdf

こうするとプリンタ選択画面でCUPS/Cupd-PDFが選択できる。ただしcupsが生成したPDFファイルをデスクトップに書き込む際にSELinuxにブロックされるので、許可するポリシーを追加する。

[root@r60e ~]# setenforce 0
[root@r60e ~]# tail -f /var/log/audit/audit.log | tee /tmp/audit
(PDF生成を実行)
[root@r60e ~]# cat /tmp/audit | audit2allow  -M local
[root@r60e ~]# semodule -i local.pp 
[root@r60e ~]# setenforce 1

ちなみにポリシーの内容は以下のとおり。

[root@r60e ~]# cat /tmp/local.te

module local 1.0;

require {
        type unconfined_home_dir_t;
        type cupsd_t;
        class dir { write add_name };
        class file { read write create getattr setattr };
}

#============= cupsd_t ==============
allow cupsd_t unconfined_home_dir_t:dir { write add_name };
allow cupsd_t unconfined_home_dir_t:file { read write create getattr setattr };
[root@r60e ~]# 

これで何がうれしいかというと、Linuxに対応をしていないプリンタで印刷をすることが出来るようになる。Windows用のシェアウェアで、特定のフォルダにPDFファイルをぶちこむと自動的に印刷してくれるというもの(http://www.vector.co.jp/soft/win95/util/se254091.html )がある。そのフォルダをネットワーク共有して、Linuxで生成したPDFを打ち込むようにすればいいだろうというアイディアだ。WindowsサーバもXenで仮想化して常時起動しているので、プリンタサーバにしてしまえばよい。MP970のLinuxドライバが出るまでのつなぎだが(出るのか??)、いちおう役には立ちそうだ。