MS Wordで書かれた原稿を電子書籍化する作業を行ったのですが、個人的には使い慣れたRe:VIEWで管理したいものです。
そこで、MS Wordをテキストファイル化してRe:VIEWファイルに書き換えることにしました。
docx2txtを使ってMS Wordをプレーンテキストに変換する
ワードファイルのテキストをコピペしてテキストファイルに置き換えるのは流石に面倒ですし、ヒューマンエラーも発生しそうです。
そこで、何か良い方法はないかと思って、おもむろにGoogleで『docx2txt』と検索してみると、まったく同じ名前のソフトウェアを発見することができました。
ページはややレトロですが、ツール自体はメンテナンスもされているようで、これを導入することにしました。
リポジトリ作成
まずはリポジトリの作成です。とりあえず、次のようなファイル配置をしました。
. ├── Rakefile ├── script │ ├── docx2txt.pl │ └── docx2txt.sh └── src ├── Chapter1.docx └── Chapter2.docx
そして、Rakefileには次のようなスクリプトを書きました。
require 'rake' desc 'convert ./src/*.docx to ./src/*.txt' task :docx2txt do Dir.glob('./src/*.docx') do |docx| txt = File.basename(docx).sub(/\.docx$/, '.txt') if File.exist?("./src/#{txt}") puts "#{txt} exist." sh "rm ./src/#{txt}" end sh "./script/docx2txt.sh #{docx}" end end
テキストファイルへの変換
作成が終ったら、
$ rake docx2txt ./script/docx2txt.sh ./src/Chapter1.docx Text extracted from <./src/Chapter1.docx> is available in <./src/Chapter1.txt>. ./script/docx2txt.sh ./src/Chapter2.docx Text extracted from <./src/Chapter2.docx> is available in <./src/Chapter2.txt>.
すると、
. ├── Rakefile ├── script │ ├── docx2txt.pl │ └── docx2txt.sh └── src ├── Chapter1.docx ├── Chapter1.txt ├── Chapter2.docx └── Chapter2.txt
こんな感じで無事にテキストファイルが作成されました。
とりあえず、これをコミットしておけば、今後もしワードファイルが更新されても、差分を確認することが可能になりました。
まとめ
MS Wordをコピーして貼り付けると、記号文字がちょっとアレな感じだったのですが、docx2txtを使って変換すると、いい感じに変換してくれたので、編集作業もとても楽に行うことができました。
作業が終ってから、この記事を書くにあたって調べてみると、docx2txtを使ってgit diffで直接差分を表示するという方法を紹介している記事を見つけたりして、人によってはこれだけで十分嬉しいかと思います。
やり方は他にも色々とあるかと思いますが、今回私が実際に利用した方法を紹介してみました。