アレアレ

お役立ち情報、お悩み解決情報を発信!

電子書籍

でんでんコンバーターをコマンドラインから利用する方法

でんでんコンバーターをコマンドラインから利用する方法

今回は、でんでんコンバーターを利用して電子書籍を出版している人へのお役立ち情報をご紹介します。

リフロー型のepubファイルを生成するのに、とても便利なでんでんコンバーターですが、いちいちブラウザを立ち上げて利用するのに不便を感じていませんか?

それを「コマンドラインから、コマンド一発で変換できるようにできますよ」と言うのが、お伝えしたいことです。ただし、今回の記事は、ある程度ITのスキルがある方を対象としています。

「ITは詳しくないけど、利用していみたい」という方は、どなたか詳しい方にこの記事を見せて、そのやり方を教わってください。

はじめに

それでは、早速始めましょう。今回ご紹介する方法ですが、rubyを利用します。で、この記事は、MacOS Xのターミナルを利用する前提で書きますが、rubyを実行できる環境があれば、windowsでもlinuxでも構いません。

ご参考として、今回の方法について動作確認が取れている私の環境を書きますと次の通りです。

動作確認が取れている環境

MacOS: 10.11.2(El Capitan)
ruby: 2.0.0p645 (2015-04-13 revision 50299) [universal.x86_64-darwin15]
faraday: 0.9.2

次に。今回のプログラムを動かすための準備として、rubyのgemとして、faradayをインストールします。Macのターミナルを起動したら、次のコマンドを実行してください。

sudo gem install faraday

これで準備が整いました。

デンパブの使い方

今回ご紹介する方法ですが、rubyを利用したプログラムとなっています。名前があったほうがわかりやすいので、デンパブとします。でんでんコンバーターにパブリッシュするので、この名前です。

では、デンパブのプログラムのコードを次に示します。

require "faraday"

path=ARGV[0] #対象フォルダのパス
title=ARGV[1] #タイトル
creator=ARGV[2] #作者名

conn = Faraday.new(:url => 'http://conv.denshochan.com') do |builder|
  builder.request :multipart
  builder.request :url_encoded
  builder.adapter :net_http
end

uploads = []
files = Dir::entries(path)
files.each{|file|
    filepath = "#{path}#{file}"
    if File::ftype(filepath) == "file"

        ext = File.extname(filepath)

        if ext==".txt" || ext==".css" || ext==".jpg" || ext==".png" || ext==".yml" || ext==".php"
            uploads.push(Faraday::UploadIO.new(filepath,'application/octet-stream'))
        end 
    end
}

params = {
  :title    => title,
  :creator => creator,
  :uploads => uploads,
  :direction => 'ltr', #横書き:ltr 縦書き:rtl
#  :titlepage => '1', #扉ページの生成 1:生成する
  :toc_in_spine => '1', #目次ページの生成 1:生成する
#  :auto_sentence_wrap => '1', #文を句点ごとにspanで囲む   1:する
}

response = conn.post '/converter', params
puts response.body

以上のコードをテキストエディタにコピペして、denpub.rbと言うファイル名で保存してください。

このコードについて、簡単に解説しておくと。このプログラムは、でんでんコンバーターに対し、指定したパスのフォルダに含まれるファイルをまとめてポストし、そのレスポンスの結果を標準出力に出力するものです。

対象フォルダ内のファイルのうちアップロードするものは、その拡張子で制限されています。このコードでは、以下の拡張子のファイルのみ、アップロードするようになっています。

  • .txt
  • .css
  • .jpg
  • .png
  • .yml
  • .php

以上の拡張子以外のファイルをアップロードしたい場合は、適宜プログラムを自分で修正してください。

では、保存したdenpub.rbの使い方ですが、こちらもMacのターミナルから利用します。次のようなイメージですね。

ruby denpub.rb フォルダのパス タイトル 作者名 > filename.epub

例えばですが、でんでんコンバーターの公式サイトにあるサンプルの黒船前後のフォルダに対して、このプログラムを実行する場合は、次のようになります。

ruby denpub.rb /Users/.../kurofune/ 黒船前後 服部之総 > 黒船前後.epub

で、出来上がった黒船前後.epubを開いてみると、epubになっていることがわかるはずです。

デンパブの注意点

このデンパブを利用する時ですが、注意点が2つあります。

1つ目の注意点は、特にエラー処理を考えていないことです。例えば、でんでんコンバーター側でエラーが起きたとしても、このプラグラムの動作上はよくわかりません。出来上がったepubを見て、「あれ、ちゃんと変換されていない」とわかることになります。

2つ目の注意点は、指定フォルダに設定ファイル(ddconv.yml)を含めた場合は、そちらの内容が優先されることです。デンパブのパラメーターとして、タイトルと作者名を指定できるようになっていますが、設定ファイルがある場合は、そちらが優先されます。

これは、デンパブの仕様ではなく、でんでんコンバーター側の仕様です。

epub変換が本当に楽になりますよ

デンパブを利用すると、ブラウザを立ち上げずに、一発で、でんでんコンバーターを利用したepubへの変換ができるので、本当に楽になりますよ。

ぜひお試しください。

Return Top