2010年11月29日月曜日

圧縮データっていじれるのね

一昨日の続きです。ちと粘ったら電子書籍 Epubに関する動きまとめ3 データ ソフト編が見つかりました。
前回のエントリーで説明したとおり、epub形式は元はzip圧縮されたものなので、拡張子を変更するだけで解凍できるようになります。ただし、ここでは 解凍しません。
7-zipなどの圧縮状態から編集できるソフトを使用し、直接該当のxhtmlファイルを編集します。

やってみました。7-zipの[ファイル]-[編集]でxthmlファイルを開き、言語指定(xml:lang="ja" lang="ja")を削除して表示確認後、再度、言語指定(xml:lang="ja" lang="ja")を追加して検証しました。

言語指定を削除したもの


再度、追加したもの


同様の作業はWinRARではムリでした。Explzh for Windowsでは[編集]-[ビューア]-[テキストエディタ]でできるかと思いきや、削除は出来るものの追加書き込みの時点で「圧縮できませんでした」のエラーが表示され、言語指定を追加することが出来ませんでした(別なやり方があるのか?)。

とりあえず、このやり方でコトリコさんの講談の時代薄小説のepubデータを修正してみました。OEBPSフォルダがないもののバッチGoo!でした↓


で、なんで圧縮の状態でないと修正できへんのかというと

電子書籍 Epubに関する動きまとめ2 データ制作編
出来上がったソースをまとめて.epub形式に変換する。
.epub形式と言ってもZIP圧縮されているだけだという。だが、ここで問題。
ZIP圧縮するとき、デフォルトの圧縮ツールで圧縮して拡張子を変えるだけではうまく読み込みされない問題がある。
これはmimetypeファイルを圧縮してしまうせいで、このファイルは圧縮せずに格納する必要があるということ。
えらく難儀な仕様なんですな。一度、解凍してしまうとコマンドプロンプトを使ってmimetypeを指定して無圧縮にしなけければならんようです。Sigilでしたら直接[epub]形式で保存されるので楽ができますな。

で、今回の文字化けで調べているうちに文字化けしたePubファイルの復旧にあたった。
Stanzaの場合、改行コードが「CR/LF」のものを「LF」に変えて保存したら直ったというもの。
改行コードで文字化けが発生するとは到底思えないが、どうなのだろう?

0 件のコメント: