フォルダの内容をzip文書にファイル拡張子 "epub"で再帰的に追加するメソッドを作成しました。これは基本的には1つのものを除いてepubと同じものです:java.util.zipを使って有効なepubを構築する
アーカイブの最初のドキュメントの名前は "mimetype"でなければなりません。タイプはapplication/epub + zipで指定する必要があります。バイトオフセットは38で始まる必要があります。オフセット付きアーカイブにmimetypeを追加する方法はありますか38?
私が作った方法はほとんど動作します。ほとんどのeリーダーが読むことができるepubを構築しますが、検証はしません。 EpubCheckは、このエラーを与える:
mimetype contains wrong type (application/epub+zip expected)
これは、元のテストEPUBに存在しない問題ですが、再構築されたEPUBに表示されます。そして私は、解凍された/再圧縮されたmimetypeファイルの内容が正しいことを再度確認しました。
ここに投稿する方法が多すぎます。しかし、これは私がアーカイブにMIMEタイプファイルを追加するために使用しているものです:
out = new ZipOutputStream(new FileOutputStream(outFilename));
FileInputStream in = new FileInputStream(mimeTypePath);
out.putNextEntry(new ZipEntry("mimetype"));
int len;
while ((len = in.read(buf)) > 0) {
out.write(buf, 0, len);
}
out.closeEntry();
in.close();
out.close();
http://www.siegmann.nl/epublibのような既存のライブラリを使用するのではなく、ホイールを再発明している理由は何ですか?たとえそれを使用し終わっていなくても、ソースを読むことで、それがどのように正しく行われたかがわかります。 –
epub zipを簡単に作成する手順を説明したり、チュートリアルを提案したりできますか? – GAMA
@GAMA、あなたの質問は、ここでstackoverflowの新しいトピックに適しているかもしれません。質問を投稿すると、必要な情報を得ることができます。何をしようとしているかに応じて、私はあなたが必要とする答えを持っているかもしれません。しかし、それは新しいトピックにする必要があります。 – objectivesea