SWFToolsでPDFをSWFへ変換

FlexPaper実装メモの続き(その1)です。

FlexPaperで表示させたいPDFは、事前にSWFファイルに変換しておく必要があります。
※FlexPaperが内部的に処理する訳ではありません。

変換にはSWFToolsというものを使用しますので、環境構築についても合わせてご紹介します。

SWFToolsの環境構築

まずはSWFToolsをインストール。

brew install swftools

たったこれだけ。簡単ですね。

WindowsならGUIツールのインストールでもいいかと思います。

PDFをSWFに変換

対象のディレクトリに移動

PDFの格納されているフォルダへ移動します。
cdを入力後にターミナルの画面へフォルダをドラッグ&ドロップすれば自動でパスが入ります。

cd フォルダへのパス

pdf2swfコマンドを使ってSWFに変換

移動したら下記のコマンド(file.pdf→file.swfへ変換)を実行。[-options]は、なくても構いません。

pdf2swf [-options] file.pdf -o file.swf

これで変換完了です。
※pdf2swfのオプションについては、SWFToolsのWikiページ内のpdf2swfの項を参照ください。

試しにWindowsでGUIも試してみましたが、手間はそんなに変わらないように感じました。
使いやすい方で変換するといいかと思います。

pdf2swfの注意点など

異常に重たいSWFファイル

SWFToolsのGUIツールでの変換ではわからないのですが、ターミナルで変換するとエラーが出ていることがあります。

Error: Unknown character collection 'フォント名'

PDFについては詳しくわかりませんが、埋め込みフォントにしておかないと、異常に重たいSWFファイルができあがってしまうようです。
問題は重たいSWFだとFlexPaperのブラウザー表示に時間がかかることです(環境によってはフリーズ)。

これはGUIツールを使って、いろんなパターンでSWFの容量を圧縮したりしてみましたが、改善できませんでした。そもそも圧縮し過ぎると画像などが劣化してFlexPaperの良さが半減してしまいます。

以上の点から、元のPDF作成時には注意が必要です(文字のアウトライン化でも改善します)。
※PDFについては提供されたデータなので、深く追求できていません。もしかしたら違う原因かも。

PDFを一括変換できないか?

例えば「フォルダ内のPDFを一括変換」の仕方がわからなかった…
正規表現など使えばできるんだろうか??

SWFToolsはSWFファイルを弄れるツール群のようなので、他にも色々便利機能がありそうです。