EPUB FACTORY
EPUB知識 / 疑難解決
疑難解決

投稿出錯時
常見原因與修改方法

做好的EPUB商店不收,或者校驗工具報錯。原因其實集中在幾種模式上。本文梳理該先確認什麼,以及最常見的那些報錯到底在說什麼。
本文內容
  1. 先過一遍校驗工具
  2. 常見的報錯與改法
  3. 校驗通過卻不被接受時
  4. 怎麼讀報錯

先過一遍校驗工具

商店界面上顯示的報錯,大多含糊其辞,有時只寫「檔案有問題」。

所以第一件該做的事,是拿它過一遍叫作EPUBCheck的校驗工具。這是W3C發布的官方工具,免費。也有可以在線校驗的服務。

這個工具會具體指出「哪個檔案的第幾行,出了什麼問題」, 比商店的報錯資訊更容易找到原因。

如果沒有報錯

EPUBCheck沒報錯卻被商店拒絕時,多半不是EPUB規格的問題,而是沒有滿足商店自己的要求。請參考後面的章節。

常見的報錯與改法

個人做EPUB時,遇到的報錯基本就那麼幾類。

關於mimetype的報錯 ZIP的做法不對

EPUB檔案裡有一個叫 mimetype 的小檔案,規定是要放在ZIP的最前面,而且不壓縮

用普通的壓縮軟體把資料夾打成ZIP,滿足不了這個條件。這是手工組裝EPUB時最常出現的問題。

改法 用EPUB製作工具重新生成。如果非要手工重新壓縮,需要一套先把mimetype以不壓縮方式存入的步驟。
關於檔案登記的報錯 收錄的檔案沒登記,或者登記了卻不存在

EPUB裡包含的所有檔案,都必須登記在 <manifest> 中,也就是 content.opf 裡。

加了圖片卻忘了登記,或者反過來登記了的檔案實際並不存在——這種不一致就會報錯。

改法 把manifest的清單和實際的檔案構成對照一遍。用工具重新生成最可靠。
關於必填資訊的報錯 書目資訊不全

EPUB 3規定下列資訊為必填。

dc:title(書名)
dc:language(語言。日文寫 ja
dc:identifier(標識符)
dcterms:modified(更新時間)

改法 確認是不是把輸入欄留空就轉換了。尤其是書名,那是會顯示在讀者書架上的重要項目。
關於鏈接的報錯 目錄的鏈接目標不存在

目錄(nav.xhtml)裡鏈接指向的檔案不在書中。刪掉了章節卻沒更新目錄時就會這樣。

改法 確認目錄的鏈接目標。改過原稿之後,重做一遍EPUB更安全。
關於XHTML寫法的報錯 標簽忘了閉合、寫法有誤

EPUB的正文用XHTML書寫,寫法比普通HTML更嚴格。 標簽忘了閉合,或者寫成<br> (正確寫法是 <br />),都會報錯。

把HTML標簽直接寫進原稿時,容易出這個問題。

改法 把HTML標簽從原稿裡去掉。需要修飾時,使用工具支援的記法。

校驗通過卻不被接受時

EPUBCheck報錯為零卻被商店拒絕,那就不是規格的問題,而是商店自己的要求

常見的要求

要求會變

各商店的投稿要求可能更新。最新資訊請務必在該商店的官方幫助中確認。

包括本文在內,第三方整理的資訊都可能過時。把報錯資訊裡的原文直接拿到官方幫助裡搜尋,最為可靠。

Kindle的情況

亞馬遜會把讀入的EPUB轉換成自家格式。問題可能出在這個轉換階段,所以投稿前先用Kindle Previewer確認,能更快地把原因區分開。

如果Previewer能打開卻在投稿時被拒,那麼問題更可能出在登記資訊或審核,而不是檔案本身。

怎麼讀報錯

EPUBCheck的輸出是英文,但只要知道怎麼看就不難。

ERROR(RSC-001): book.epub/OEBPS/content.opf(12,45):
  File "OEBPS/image/cover.jpg" could not be found.
↑類別 ↑哪個檔案的第幾行 ↑什麼問題
標示含義
FATAL致命。檔案根本不成立
ERROR違反規格。必須修改
WARNING警告。能用,但不推薦
INFO提示。多數不必處理

請先只看FATAL和ERROR。 WARNING大多可以就那樣發布。

報錯一大堆的時候

幾十條報錯排在一起看著絕望,但多數都源自同一個原因。

比如manifest裡只寫錯了一行,從它引用的所有檔案就都會報錯。從上往下,只改最前面那一條再重新校驗,數量常常一下子就少了。

有時重做反而更快

如果是把工具生成的EPUB手工編輯後弄壞了,從原稿重做往往更快。與其一條條消滅報錯,不如改好原稿再轉換一次,更可靠。

做一個能通過校驗的EPUB

EPUB FACTORY生成的檔案,都會經過符合標準的校驗並把結果顯示出來。無需注冊,也不用安裝。

試試EPUB FACTORY
EPUBCheck通過了卻還是不放心時

規格上明明正確、卻會在讀者的環境裡出問題的地方,EPUB診斷會用你的語言指出來。全部在瀏覽器內完成,檔案不會發送到任何地方。免費,無需注冊。

診斷EPUB →