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ファイルを弄れるツール群のようなので、他にも色々便利機能がありそうです。