Ubuntu Weekly Recipe

第22回 PDFの活用:PDFプリンタ・pdftk

Ubuntu 7.10から、インストール直後からPDFプリンタを利用できるようになりました。今回は、Ubuntu上でPDFを活用するレシピをお届けします。

PDFプリンタについて

Ubuntu 7.10からはデフォルトのプリンタとしてPDFプリンタがインストールされています(cups-pdf⁠⁠。

図1 インストールされているPDFプリンタ
図1 インストールされているPDFプリンタ

通常のプリンタへの印刷と同じように、⁠印刷]を実行することで、~/PDF/以下にPDFファイルが生成されます。

図2 印刷ダイアログ上でのPDFプリンタ
図2 印刷ダイアログ上でのPDFプリンタ

このままではGUI経由で扱う際に不便なので、以下のコマンドを実行し、デスクトップ上にシンボリックリンクを張っておくのが良いでしょう。

$ cd ~/デスクトップ
$ ln -s ../PDF PDF
図3 デスクトップ上にある"PDF"ディレクトリ
図3 デスクトップ上にある

Adobe Readerのインストール

生成されるPDFファイルはGhostscript由来のもので、Adobe Acrobatから生成したPDFに比べると文字やレイアウトに崩れが見られることもありますが、おおむね満足できる品質のはずです。こうして生成されたファイルをWindows環境などとやりとりする場合、事前に表示品質の確認をしたい場合もあるでしょう。

図4 Adobe ReaderでPDFを表示した例
図4 Adobe ReaderでPDFを表示した例

このような場合には、Adobe ReaderのLinux版を利用するのが便利です。インストール方法は2つあります。

まず、Japanese Teamのリポジトリが有効な環境であればリポジトリから簡単にインストールできます。以下のコマンドを用いるか、Synapticからadobereader-jpnをインストールしてください。

$ sudo apt-get update
$ sudo apt-get install adobereader-jpn

あるいは、⁠システム⁠⁠→⁠システム設定⁠⁠→⁠日本語版セットアップ・ヘルパ]上で、adobereader-jpnを選択することでもインストール可能です。

また、Linux版Adobe Readerでは内蔵フォントとして小塚明朝・小塚ゴシックが利用されます。もしMSゴシックやMS明朝での印刷結果との互換性が必要であれば、IPAモナーフォントを指定するためのパッケージadobereader-jpn-ipamonafontをインストールしてください。

もう一つの方法は、Adobeのダウンロードサイトから入手する方法です[1]⁠。http://www.adobe.com/go/BPBQNにアクセスすると、オペレーティングシステムがLinuxであることは自動的に認識されますので、⁠インストーラの選択:]で"Linux - x86(.deb)"を選択してダウンロードしてください。インストールはパッケージファイルをダブルクリックすれば実行できます。

PDFからの変換

一度PDFファイルを生成しても、その後、別の形式に変換したいことがあります。通常は元となったファイルが手元にあるはずですので、それほど困難ではありませんが、オリジナルのファイルが見つからないこともあるでしょう(あるいは、他の人が作ったPDFファイルを変換したい、ということも考えられます⁠⁠。

Ubuntuにはデフォルトで幾つかのコマンドラインツールがインストールされており、これを利用することでPDFファイルを他の形式に変換することができます。

PDFからテキストファイルに変換する(pdftotext)

時として、PDFに含まれる文字情報のみが必要になることもあります。このような場合にはpdftotextコマンドを用いてPDFからテキストファイルへ変換することができます。これは次のように利用します(以下は、⁠276.pdf」というファイルをテキストファイルへ変換する場合の例です⁠⁠。

$ pdftotext 276.pdf 

引数を何も与えない場合、元のPDFファイルの拡張子を.txtに置き換えたものが出力結果になります(もともとのPDFファイルも残っています⁠⁠。これにより、⁠276.txt」というファイルが生成されているはずです。

また、ターミナル上でPDFの内容を確認したい場合にも利用できます。ただし、ページャとしてlessを利用する場合、文字コードの問題で、正しくファイルを閲覧できない可能性があります。この場合lessではなく、lvコマンドを用いた方が良いでしょう。lvはデフォルトではインストールされていませんので、次のコマンドを用いるか、Synapticからインストールしてください。

$ sudo apt-get install lv

図5は、gihyo.jpのトップページをPDFプリンタを用いてPDFにし、それをpdftotextでテキストファイルに変換したものをlvで閲覧しているターミナルのスクリーンショットです。一部にレイアウトの崩れがありますが、プレビュー的な用途であれば実用的でしょう。

図5 テキストに変換したPDFの例
図5 テキストに変換したPDFの例

PDFファイルを画像に変換する(pdftoppm)

PDFファイルはデータの受け渡しには非常に便利ですが、場合によっては画像ファイルに変換したい場合もあります。このような場合はpdftoppmコマンドを用います。pdftotextと異なり、こちらは標準出力に変換結果が流し込まれます。自動的に保存してくれるわけではありませんので、以下のようにリダイレクトする形で利用します。

$ pdftoppm 276.pdf > 276.ppm

これにより、PDFファイル全体が画像に変換されて出力されます。ppmファイルはGIMPなどで扱うことができます。

PDFファイルを画像に変換する(Adobe Readerを使う場合)

PDFファイル全体ではなく、ごく一部分だけを切り貼りするために画像に変換したい場合もあります。このような場合はAdobe Readerに備えられた機能を用いるのが便利です。操作は次のように行います。

まず、切り抜きを行いたいPDFファイルをAdobe Readerで開きます。

図6のように、⁠ツール⁠⁠→⁠選択とズーム⁠⁠→⁠スナップショットツール]を選択します。これは、選択した範囲を画像としてクリップボードへ送りこむツールですので、必要な範囲を選択します。

図6 スナップショットツール
図6 スナップショットツール

選択した時点で画像データがクリップボードに送りこまれますので、GIMPなどへ貼り付けて保存します。GIMPを起動し、⁠ファイル⁠⁠→⁠新規]「新規画像を作成」ダイアログを表示し、テンプレートから1600x1200等、利用しているモニタと同サイズのテンプレートを起動し、⁠貼り付け]を行います。そのままでは切り貼りした画像よりも大きな画像ファイルになってしまいますので、⁠画像⁠⁠→⁠Crop to selection]を行い、トリムすると良いでしょう。

PDFファイルの操作――pdftkの利用

Adobe Acrobatを利用してPDFを扱う場合、パスワードを設定したり、PDFファイルを分割したり、あるいは複数のPDFファイルを結合する、といった操作を行うことができます。こうした操作はpdftkを利用することで可能になります。次のコマンドを用いるか、Synapticからインストールしてください。

$ sudo apt-get install pdftk

PDFファイルを分割する

まずPDFファイルの分割方法から見ていきましょう。これは、⁠PDFの1ページ目のみを取り出したい」といった場合に用いる操作です。

以下は、PDFの2ページ目を、split.pdfというファイルに保存する例です。

$ pdftk 276.pdf cat 2 output split.pdf

pdftk --helpを実行することで確認できるサンプルにもありますが、以下のようにすることで、特定のページだけを除去することもできます。例では13ページ目のみを除去しています。

$ pdftk 276.pdf cat 1-12 14-end output split.pdf

PDFファイルにパスワードを設定する

pdftkを用いることで、PDFファイルにパスワードを設定することができます。

以下では、PDFのオーナーパスワード(⁠⁠権限パスワード⁠⁠)に「gihyo⁠⁠、ユーザパスワード(⁠⁠文書を開くパスワード⁠⁠)に「test」を指定しています。こうすることで、⁠ユーザパスワードを知らないと、開くことができないPDF』を作ることができます。

なお、こうした辞書に掲載されている単語をパスワードとして用いることはパスワードの意味がありませんので、実際に利用される場合は適切なパスワードを利用してください。

$ pdftk 276.pdf output 276_enc.pdf encrypt_128bit owner_pw gihyo user_pw test

PDFファイルのパーミッションを指定する

PDFでは、印刷の許可・編集の許可・テキストのコピーの許可といった形で、PDF上で行える操作を制限することが可能です。pdftkを用いることでこれらを変更することができます。

この機能はオーナーパスワードで保護するのが基本ですので、パスワードの設定と併せて行う必要があります(オーナーパスワードで保護されていなければ、これらの許可属性は自由に変更できますから、操作を制限することができません⁠⁠。

以下は『誰でも閲覧できるが、印刷や編集といった操作は行えないPDF』を作成する例です。

こうして作成されたPDFファイルである「276_enc.pdf」は、オーナーパスワードである「gihyo」を知らない限り、印刷などを行うことはできません。

$ pdftk 276.pdf output 276_enc.pdf allow ScreenReaders encrypt_128bit owner_pw gihyo

作成したPDFをAdobe Readerで開き、⁠ファイル⁠⁠→⁠プロパティ]とたどり、⁠セキュリティ」タブから確認すると、図7のように、印刷などの操作が禁止されていることが確認できます。

図7 印刷だけを許可するセキュリティ属性
図7 印刷だけを許可するセキュリティ属性

複数のPDFファイルを一つにまとめる(結合)

整理の都合で、複数のPDFファイルを一つにまとめたいこともあります。これは以下の操作で可能です。

$ pdftk 276.pdf 277.pdf cat output 276_plus_277.pdf

この例の場合、276.pdfの後ろに277.pdfをつなげ、⁠276_plus_277.pdf」という新しいPDFファイルを作成しています。例では2つのファイルだけを指定していますが、さらに多くのPDFファイルを結合することも可能です。結合したいPDFファイルが格納されたディレクトリで以下を実行すると、そのディレクトリ内にあるすべてのPDFファイルを結合することができます。

$ pdftk *.pdf cat output conbined.pdf

PDFのちょっとした編集

PDFファイルにした後で、ちょっとした誤字脱字の修正や、用紙の向きの変更を行いたいこともあるでしょう。そのような場合にはpdfeditコマンドを利用すると、GUIで修正を行うことができます。次のコマンドを用いるか、Synapticからインストールしてください。

$ sudo apt-get install pdfedit

インストール後は、⁠アプリケーション⁠⁠→⁠グラフィックス⁠⁠→⁠PDF Editor]とたどることでpdfeditを起動できます。端末などから起動する場合は、pdfeditコマンドを実行してください。

起動すると図8のような画面になりますので、編集したいPDFを読み込み、必要な操作を加えて保存、といった形で利用します。

図8 pdfeditによる編集
図8 pdfeditによる編集

おすすめ記事

記事・ニュース一覧