Web 小説を Epub に変換する
小説家になろう などのサイトにある物語を縦書きで読みたくなったので、調べてみたところ、Narou.rb というものがありました。
Ruby で動くようですが、Epub への変換に AozoraEpub3 を使うようです。AozoraEpub3 は Java で作られているので、ひょっとしたら、Raspberry Pi でも動くかもしれません。
まず、AozoraEpub3 をダウンロードして動かしてみます。
AozoraEpub3 (失敗)
作業用のディレクトリを作成して、ダウンロードした zip ファイルを回答します。
$ mkdir AozoraEpub3 $ cd AozoraEpub3 $ unzip ~/Downloads/AozoraEpub3-1.1.0b46.zip Archive: AozoraEpub3-1.1.0b46.zip inflating: AozoraEpub3.ico inflating: AozoraEpub3.jar ・ ・
動かしてみます。
$ java -jar AozoraEpub3.jar
起動したら、青空文庫型式のテキストファイルをドラッグ&ドロップして変換できるかどうか確認しました。
ちょっと不安でしたが、OpenJDK でも動いてくれました。
$ java --version openjdk 11.0.14 2022-01-18 OpenJDK Runtime Environment (build 11.0.14+9-post-Raspbian-1deb11u1) OpenJDK Server VM (build 11.0.14+9-post-Raspbian-1deb11u1, mixed mode)
Naro.rb
github 上の Narou.rb 説明書 の手順にしたがって動かしてみました。
$ sudo apt install ryby-dev ・ ・ $ sudo gem install narou ・ ・
インストールにはかなり時間がかかりました。
narou help Narou.rb ― 小説家になろうダウンローダ&縦書き用整形スクリプト Usage: narou init まだこのフォルダは初期化されていません。 narou init コマンドを実行して初期化を行いましょう。
動くようです。
設定
ディレクトリを作成し、そこに移動します。以降、このディレクトリで作業します。こでは、AozoraEpub3 のパスを入力します。
$ mkdir ~/Documents/Narou $ cd ~/Documents/Narou $ narou init .narou/ を作成しました 小説データ/ を作成しました ------------------------------ AozoraEpub3の設定を行います !!!WARNING!!! AozoraEpub3の構成ファイルを書き換えます。narouコマンド用に別途新規インストールしておくことをオススメします AozoraEpub3のあるフォルダを入力して下さい: (未入力でスキップ) >/home/pi/work/Epub/AozoraEpub3 行間の調整を行います。小説の行の高さを設定して下さい(単位 em): 1em = 1文字分の高さ 行の高さ=1文字分の高さ+行間の高さ オススメは 1.8 1.6 で若干行間狭め。1.8 だと一般的な小説程度。2.0 くらいにするとかなりスカスカ (未入力で 1.8 を採用) > (次のファイルを書き換えました) /home/pi/work/Epub/AozoraEpub3/chuki_tag.txt (次のファイルをコピーor上書きしました) /home/pi/work/Epub/AozoraEpub3/AozoraEpub3.ini /home/pi/work/Epub/AozoraEpub3/template/OPS/css_custom/vertical_font.css AozoraEpub3の設定を終了しました 初期化が完了しました! 現在のフォルダ下で各種コマンドが使用出来るようになりました。 まずは narou help で簡単な説明を御覧ください。
デフォルトの出力フォーマットを設定しておきます。Epub 型式にします。
$ naro s device=epub
転生したらスライムだった件をダウンロードしてみます。
$ narou d https://ncode.syosetu.com/n6316bn/ 変換開始 : /home/pi/Documents/Narou/小説データ/小説家になろう/n6316bn 転生したらスライムだった件/[伏瀬] 転生したらスライムだった件.txt java.io.IOException: This archives contains unclosed entries. at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.finish(ZipArchiveOutputStream.java:343) at org.apache.commons.compress.archivers.zip.ZipArchiveOutputStream.close(ZipArchiveOutputStream.java:550) at com.github.hmdev.writer.Epub3Writer.write(Epub3Writer.java:968) at AozoraEpub3.convertFile(AozoraEpub3.java:512) at AozoraEpub3.main(AozoraEpub3.java:431) Exception in thread "main" java.lang.NoClassDefFoundError: com/sun/image/codec/jpeg/ImageFormatException at com.sun.media.jai.codecimpl.JPEGImageDecoder.decodeAsRenderedImage(JPEGImageDecoder.java:46) at com.sun.media.jai.codec.ImageDecoderImpl.decodeAsRenderedImage(ImageDecoderImpl.java:140) at com.github.hmdev.image.ImageUtils.readImage(ImageUtils.java:107) at com.github.hmdev.image.ImageUtils.writeImage(ImageUtils.java:152) at com.github.hmdev.writer.Epub3Writer.writeImage(Epub3Writer.java:1032) at com.github.hmdev.writer.Epub3Writer.write(Epub3Writer.java:909) at AozoraEpub3.convertFile(AozoraEpub3.java:512) at AozoraEpub3.main(AozoraEpub3.java:431) Caused by: java.lang.ClassNotFoundException: com.sun.image.codec.jpeg.ImageFormatException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 8 more pid 11281 exit 1 [ERROR] JavaがインストールされていないかAozoraEpub3実行時にエラーが発生しました。EPUBを作成出来ませんでした
Jpeg で落ちているようです。Java のクラスがありません。改造版があるようなのでそちらを使ってみます。
AozoraEpub3 改造版(成功)
AozoraEpub3 改造版 の Releases から最新版の AozoraEpub3-1.1.1b12Q.zip をダウンロードして使ってみましたが、narou の初期化でエラーになります。テンプレートが変更されたようです。
一番古い zip は、AozoraEpub3-1.1.0b50Q.zip でした。これを解凍して、改めて、narou の初期化を行い、AozoraEpub3 のディレクトリとして 1.1.0b50Q のディレクトリを指定したところ、無事初期化できました。この状態で、web インターフェースを使い、epub へ変換しました。
変換した epub を Readium で開いたところ、無事縦書きで読むことができました。
あとは、SonyReader なり Kobo なりにコピーすればいいでしょう。
ディスカッション
コメント一覧
まだ、コメントがありません