Make MIMETYPE file the first file in an EPUB ZIP file?

て烟熏妆下的殇ゞ 提交于 2019-12-08 04:18:42

问题


My goal is to create an EPUB file via an AppleScript, and I'm starting with semi-manually generating an EPUB file. My issue is that the IDPF EPUB validator reports that my MIMETYPE file isn't isn't the first file in my EPUB package or that my MIMETYPE doesn't exist. My AppleScript is creating the EPUB folder structure and a MIMETYPE file:

set EPUBMIMETYPEfilepath to ((EPUBfolderPath & ":MIMETYPE") as string)

set referenceToEPUBMIMETYPEfile to a reference to file EPUBMIMETYPEfilepath

open for access referenceToEPUBMIMETYPEfile with write permission

write "application/epub+zip" to referenceToEPUBMIMETYPEfile

close access referenceToEPUBMIMETYPEfile

So, later on when I have a collection of folders and files resembling a standard EPUB structure, I'm using the command line to ZIP up the EPUB:

zip -X0 ../epubFilename.epub MIMETYPE
zip -rDX9 ../epubFilename.epub.epub META-INF -x "*.DS_Store"
zip -rDX9 ../epubFilename.epub.epub OPS -x "*.DS_Store"

Later on I can unzip my EPUB and actually see that there's indeed a MIMETYPE file within, however perhaps not the first file because the META-INF folder is sorted first?

Question: does anyone have any tips to create an EPUB via the command line on a Mac?


回答1:


As you found out, the mimetype filename must be lowercase. Of the files required by the EPUB format, only the META-INF/ directory should have an uppercase name. By the way, you only need one """zip -rDX9" command. The -r will recursively include the subdirectories and files into the .epub.




回答2:


There are three Terminal commands you need to use to build your EPUB:

  1. Load in the mimetype file:

zip -X "[book_title_goes_here].epub" mimetype

  1. Load in the META-INF directory and exclude any .DS_Store files:

zip -rg "[book_title_goes_here].epub" META-INF -x *.DS_Store

  1. Load in the EPUB directory (or whatever you've named the directory where all of your content lives), and exclude any .DS_Store files:

zip -rg "[book_title_goes_here].epub" EPUB -x *.DS_Store

Don't forget to run your book through epubcheck (you can download an AppleScript app from Google Code; just drag and drop the EPUB file onto the AS app: https://code.google.com/p/epub-applescripts/downloads/detail?name=ePubCheck_3.0b5.zip&can=2&q=).



来源:https://stackoverflow.com/questions/25924095/make-mimetype-file-the-first-file-in-an-epub-zip-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!