S f35fe436493a0f4a268795248a2254cd サーバーでWebページをPDFにする方法

※この方法はかなり処理速度が遅い、という結論に至りました。負荷のかかっているサーバーではおすすめできません。

htmlファイルからPDFを書き起こす場合にはmozilla2psを使うとよさげですが、他の方法もありました。

あとで書きますが、Mozillaベースではなく、Safariベースの同じものがありました()。(ソースからのコンパイルが必要ですが)

mozilla2ps : http://freshmeat.net/projects/mozilla2ps

mozilla2psって何ですか?


Geckoのレンダリングエンジン(Firefoxに搭載されているやつ)を使って印刷をしてくれるXULアプリです。

簡単に書くと、xulrunner を yum とか apt-get とかでインストールして、mozilla2pdf をダウソして、フォントをごにょごにょすれば簡単に使えます。

メモ: コマンドラインでHTMLファイル、PDFファイルを指定するときは絶対パスで指定しましょう。

何ができますか?


WindowsのFirefoxと同じようにサーバー上でPDFに印刷することができます。Firefoxの「印刷プレビュー」で見ることのできるイメージとほとんど同じ感じです。

Windowsで印刷するのと違う点/フォントの扱い


WindowsにインストールしてあるフォントはLinuxには標準でインストールされていないので、代替となるフォントを探してくる必要があります。(後で書く)
ちなみに、PDFファイルには使用したフォントが埋め込まれる(サブセットではなく、フルセットで)のでどのような環境でも同じように表現されるはずです。が、商用フォントはPDFの埋め込みなどでライセンスに制限があったりするので注意が必要です。

フォントのインストール


Linuxにはxfsという「フォントサーバー」なるものがあります。
このフォントサーバーが認識できるよう、TrueTypeフォントをインストールしてあげましょう。

CentOS/RHELのデフォルトでは次のディレクトリの配下にたくさんフォントが入っています。

/usr/share/fonts

このディレクトリの下に、適当なフォルダを作り、
$ ttmkfdir
$ mkfontdir
# /etc/init.d/xfs restart

としてやれば多分大丈夫だと思います。(後で書く)

サーバーにはディスプレイがないけど、ちゃんと動くの?


XULアプリは基本的にディスプレイがないとだめっぽいです。特にサーバーにはディスプレイがないので、仮想ディスプレイっぽいもの(正確にはXサーバーと呼んだりする)をインストールしてやる必要があります。

近代的なLinuxを使っていれば指一本でインストールできます。Xvfbというプログラムを使います(後で書く)

もしかして

    他の人の「サーバーでWebページをPDFにする方法」

    S f35fe436493a0f4a268795248a2254cd

    WebEngineer/Programmer. Prince of Datemaki. http://t.co/bRyxe9zpWJ スコーンと自転車。技術隊長,料理長. Descendant of Ninja(大嘘). カニ野郎.

    最新

      最新エントリ

        関連ツイート