ワード(docx)からEPUBファイルへ下準備

2018/10/3 [22:07:34] (水) 天気

epubファイルを作成するのに元データがワードというケースがあったりなかったり。

電書オリジナルもそうだし、既存の本のOCRもデータがWORDファイルということになる。

このネタ、過去にも何度かここに書いていて、くりかえしになるかもしれないので、今回は途中で使うスクリプトをアップロードして差別化…ていうかやっとくだらないバグが取れたので(汚いケド)晒してもいいかな、と。


スクリプトを使って

・ワードファイル(.docx)を解凍(展開)

・ワードで指定されているルビ、縦中横、圏点、太字をxhtmlのタグに変換

・ルビのオフセットを出力

やることは以上3つ。


用意するものは。


・例によってperl

WINDOWSは https://www.activestate.com/activeperl/downloads からダウンロード、インストールが必要。

それ以外のOS、Macやunix系は特に必要なし。


・コマンドライン版のunzip

WINDWOSは https://github.com/bmatzelle/gow/downloads このへんからダウンロード、インストールが必要。

それ以外のOS、Macやunix系は特に必要なし、かな。


・以下のスクリプト

https://t2aki.doncha.net/tmp/docx2xhtml-tag.zip


ターミナルのコマンドプロンプトで

perl check_docx.pl word.docx

と叩くとdocxを展開して、ルビはxhtmlのタグに変換。縦中横や圏点は独自タグに変換。

「_docx-yyyymmdd.txt」というファイルを出力する。

同時に「check_docx.log」というルビとそのオフセット位置を記述したファイルを出力。


なんでこんなファイルを出力するのかというと。

ルビを削除したい時にオフセットをいじってルビを見えなくする、という凶悪なことをやってるケース。ワード上ではルビは見えないのにデータにはルビが殘っている、という迷惑なことが何度かあってムカついたからオフセットが変なルビを確認するため。


次にターミナルのコマンドプロンプトで

perl _docx2xhtml-tag.pl _docx-yyyymmdd.txt

と叩いて、縦中横・圏点・太字をxhtmlのタグに変換。

「_docx-yyyymmdd-converted.txt」というファイルを出力する。


ワードファイルを真面目に解析すればワード上のレイアウト情報も取れるんだけど、そもそもepubファイルに変換する時に、ワード上のレイアウトを再現することを要求されることはほとんどない。

必要な情報はルビと文字装飾(縦中横・圏点・太字・傍線)ぐらいなものなので、これだけで実用には十分。


以上のことをwordを開いて目視確認(目grep)して、タグづけしてたんじゃとてもやってられんので、スクリプトにやらせることにした。このおかげで3〜4時間作業が20分作業となって取りこぼしも激減。


(スクリプトではwordのxmlを解析してごにょごにょやってるんで、そっち系のひとにはほんの少しは面白いネタかもしれない)


てことで、今日は家人と築地市場で海を食ってきた!

image

いや、なんというか、ほんとに美味かったなあ(涎)

<<2026/3>>
       
1234567
891011121314
15161718192021
22232425262728
293031

【最近の10件】

日常読書映画アニメゲーム健康料理グルメカメラ写真ネタ仕事パソコンインターネットperlEPUB3電子書籍ActivityPub還暦生活
検索: