概要
uploadされたoffice関連ファイルをWebでサムネイル表示するための事前調査としてImageMagickとlibreofficeをインストールしてその動作を調べてみました。
ツールのインストール
>sudo yum -y install ImageMagick ImageMagick-devel libreoffice xorg-x11-server-Xvfb
私はvagrantでやったのですが、もの凄く時間がかかるので覚悟を!!
フォントのインストール
日本語TrueTypeフォント「IPAフォント」と「IPAexフォント」をインストールします。
これをやらないと、日本語が「□□□□」とかになります。
IPAexフォント・IPAフォントのダウンロード
上記サイトからあらかじめIPAfont00303.zipとIPAexfont00201.zipをダウンロードしておいてください。
>unzip IPAfont00303.zip
>sudo mkdir /usr/share/fonts/japanese
>sudo mkdir /usr/share/fonts/japanese/TrueType
>sudo mv IPAfont00303/*.ttf /usr/share/fonts/japanese/TrueType/
>unzip IPAexfont00201.zip
>sudo mv IPAexfont00201/*.ttf /usr/share/fonts/japanese/TrueType/
>sudo fc-cache -fv
※エラーがでたらmvをcpに変えて実行してみてください。
DISPLAYの設定
サーバーなので通常DISPLAYは無いのですが、libreofficeはフレームバッファを使用します。ツールのインストールで仮想フレームバッファ X サーバ(xorg-x11-server-Xvfb)をインストールしているので、コマンドラインでlibreofficeを使用する前にDISPLAY変数と仮想フレームバッファ X サーバを起動しておきます。
>export DISPLAY=:1.0
>Xvfb :1 &
こんなエラーが表示されますが、
> Internal error: Could not resolve keysym XF86AudioMicMute
Errors from xkbcomp are not fatal to the X server
今は気にしないことにします。(Audio関係のデバイスが存在しないためのエラーでこれからの検証する動作には関係ないので)
起動に失敗しているように見えますが、そのままENTERキーを押下してください。(コマンドは完了しています)
OFFICE->PDF変換
>libreoffice --headless --convert-to pdf 変換元ファイル.rtf
例としてrtfを変換していますが、pptxでもxlsxでもかまいません。
出力ファイルは「変換元ファイル.pdf」として出力されます。
※ここでも「XF86AudioMicMute」が表示されますが今は気にしないでください、同様にそのままENTERキーを押下してください。(コマンドは完了しています)
libreofficeの細かい使い方は
>libreoffice --help
などで確認してみましょう。
PDF->PNG変換
>convert 変換元ファイル.pdf 出力ファイル名.png
これでPNGに変換できます。
JPEGなど他の形式にしたい場合は拡張子を変えてみてください。
これも細かい使い方は
>convert --help
などで確認してみましょう。
おまけ(rmagickについて)
Railsでプロジェクトを作るのが面倒なので簡単に確認します。
>gem install rmagick
をあらかじめ実行しておきます。
変換対象となる適当なtest.xlsxと下記のtest.rbを用意します。
require 'RMagick'
# test.xlsxをtest.pdfに変換する
list = open('| libreoffice --headless --convert-to pdf test.xlsx') {|msg| msg.gets}
# test.pdfの1ページ目だけをロード
img = Magick::ImageList.new("test.pdf" + '[0]')
#test.pngとして保存
img.write("test.png")
下記コマンドを実行します。
> ruby test.rb
test.pdfとtest.pngが出来ているのを確認しましょう。
関連エントリ
【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【mysql編】
【Windows7】VirtualBox + Vagrant + Ruby + Rails4 開発環境の構築【RubyMine編】
【Yosemite】Mac OSX 10.10 Yosemite に Ruby + Rails4 開発環境の構築【初心者必見】
【Yosemite】Mac OSX 10.10 Yosemite にAMP環境の構築【初心者必見】【続編】
筆者紹介
札幌圏でリモート開発、在宅勤務を中心としたシステム開発の会社を立ち上げました!
ローラハウス