使用此a2x
命令可创建有效的.epub文件(book.epub):
$ a2x -v -k -f epub -d book book.asc
a2x: archiving: mimetype
a2x: archiving: META-INF/container.xml
a2x: archiving: OEBPS/ch01.html
a2x: archiving: OEBPS/ch02.html
a2x: archiving: OEBPS/content.opf
a2x: archiving: OEBPS/docbook-xsl.css
a2x: archiving: OEBPS/index.html
a2x: archiving: OEBPS/pr01.html
a2x: archiving: OEBPS/toc.ncx
但是,如果我尝试使用a2x
命令和zip
命令的工件(包含在 book.epub.d 中)手动创建.epub存档,生成的.epub文件无效:
$ zip -vr book.epub book.epub.d/ -x "*.DS_Store"
adding: book.epub.d/ (in=0) (out=0) (stored 0%)
adding: book.epub.d/META-INF/ (in=0) (out=0) (stored 0%)
adding: book.epub.d/META-INF/container.xml (in=255) (out=175) (deflated 31%)
adding: book.epub.d/mimetype (in=20) (out=20) (stored 0%)
adding: book.epub.d/OEBPS/ (in=0) (out=0) (stored 0%)
adding: book.epub.d/OEBPS/ch01.html (in=1161) (out=686) (deflated 41%)
adding: book.epub.d/OEBPS/ch02.html (in=679) (out=414) (deflated 39%)
adding: book.epub.d/OEBPS/content.opf (in=1288) (out=476) (deflated 63%)
adding: book.epub.d/OEBPS/docbook-xsl.css (in=5738) (out=1518) (deflated 74%)
adding: book.epub.d/OEBPS/index.html (in=1156) (out=590) (deflated 49%)
adding: book.epub.d/OEBPS/pr01.html (in=770) (out=485) (deflated 37%)
adding: book.epub.d/OEBPS/toc.ncx (in=772) (out=325) (deflated 58%)
我怀疑这是因为档案文件在路径中包含book.epub.d
。有没有办法排除这个?
答案 0 :(得分:2)
我连续拉链命令拉链EPUB:
cd /home/bookdirectory (where mimetype, OEBPS and META-INF are subdirectories)
zip -X book.epub mimetype
zip -r book.epub META-INF
zip -r book.epub OEBPS
我遇到了最长时间的麻烦,直到我发现-X
拉链上的mimetype
是必不可少的。
我注意到你的zip排除是一个小写的x
..可能会切换到大写?
答案 1 :(得分:2)
这是我成功使用的命令:
zip -Xr epubfilename.ePUB mimetype META-INF OEBPS -x \*.DS_Store
这会按正确的顺序放置文件(首先是mime类型,然后是带有container.xml的META-INF,最后是其他所有内容)并排除.DS_store,因为它看起来像是在Mac上。
请注意,您需要在示例中的book.epub.d目录中执行此操作,以生成正确的输出。
如果您还没有这样做,我还建议您使用epubcheck(https://github.com/IDPF/epubcheck或http://validator.idpf.org)仔细检查结果。