将MIMETYPE文件作为EPUB ZIP文件中的第一个文件?

时间:2014-09-18 23:34:50

标签: terminal zip applescript epub

我的目标是通过AppleScript创建EPUB文件,我从半手动生成EPUB文件开始。我的问题是,IDPF EPUB验证器报告我的MIMETYPE文件不是我的EPUB包中的第一个文件,或者我的MIMETYPE不存在。我的AppleScript正在创建EPUB文件夹结构和MIMETYPE文件:

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

所以,稍后当我有一个类似于标准EPUB结构的文件夹和文件集合时,我使用命令行来压缩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"

稍后我可以解压缩我的EPUB并且实际上看到其中确实存在MIMETYPE文件,但是可能不是第一个文件,因为META-INF文件夹是先排序的?

问题:有没有人有通过Mac上的命令行创建EPUB的提示?

2 个答案:

答案 0 :(得分:1)

如您所知,mimetype文件名必须为小写。在EPUB格式所需的文件中,只有META-INF /目录应具有大写名称。顺便说一下,你只需要一个“”“zip -rDX9”命令。 -r将递归地将子目录和文件包含到.epub。

答案 1 :(得分:0)

您需要使用三个终端命令来构建EPUB:

  1. 加载mimetype文件:
  2. zip -X“[book_title_goes_here] .epub”mimetype

    1. 加载META-INF目录并排除任何.DS_Store文件:
    2. zip -rg“[book_title_goes_here] .epub”META-INF -x * .DS_Store

      1. 加载EPUB目录(或任何您命名的所有内容所在的目录),并排除任何.DS_Store文件:
      2. zip -rg“[book_title_goes_here] .epub”EPUB -x * .DS_Store

        不要忘记通过epubcheck运行您的书(您可以从Google Code下载AppleScript应用程序;只需将EPUB文件拖放到AS应用程序:https://code.google.com/p/epub-applescripts/downloads/detail?name=ePubCheck_3.0b5.zip&can=2&q=)。