如何更正 ePUB 電子書檔案 Validation 出現的錯誤

在前一篇的文章, 我們在 International Digital Publishing Forum (IDPF) 網站確定 ePUB 電子書的檔案格式是否符合標準 (ePUB File Validation)。 老實說, IDPF 對ePUB File 的 Validation 真是十分嚴格, 很多根本不會影響 ePUB 電子書的顯示效果也會出現錯誤訊息。很多作家花了很多時間也總是沒法子將所有錯誤刪除, 最後唯有索性不理會餘下的錯誤上架銷售。

其實, 很多微少的錯誤確實不會影響 ePUB 電子書的顯示效果。你可以嘗試在網上下載一些 ePUB 電子書, 然後上載往 IDPF 作 Validation 測試, 相信 99% 的 ePUB 電子書是不完全符合標準的。

但是, 如果你真的希望完全符合ePUB 電子書檔案的標準, 這也並不是太困難的, 只要按 Validation 的錯誤訊息指示續項更改便可以了。現在我就在這裡嘗試將所有 Validation 錯誤訊息刪除。

首先登入 IDPF 網址, 將先前製作的 ePUB 檔案上傳往網站作 Validation, 結果出現了6個錯誤訊息, 如下圖所示:

idpf-validator-error-01

其實所有錯誤訊息都有清晰的指示, 例如第一個錯誤:

idpf-validator-error-02-1

理論只要按錯誤提示更改便應該可以了, 現在就嘗試根據指示更改。

首先將 ePUB 檔案解壓 (UNZIP), 所有 Export 相關的檔案將會顯示出來。

idpf-validator-error-03

用 Text editor 開啟出現錯誤的檔案 (myfirstbook.html):

idpf-validator-error-04

查看錯誤的指示:

Irregular DOCTYPE: found ‘-//W3C//DTD XHTML 1.1 //EN’, expecting ‘<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1//EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>’.

再看看 myfirstbook.html 檔案, 很明顯的, 錯誤是出現在第二行:

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.1 //EN” “http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd”>

驟眼一看, 兩行都是一樣的, 以為沒有錯誤。但細心看看, 原來在”1.1 //EN”之間是不容許空位的。

idpf-validator-error-05

將”1.1 //EN”之間的空位刪除, 改成”1.1//EN”, 然後儲存檔案。

第二個錯誤和第一個錯誤是相同的, 只是發生在第二頁 (myfirstbook-1.html), 同樣將”1.1 //EN”之間的空位刪除, 然後儲存檔案。

第三個錯誤和第四個錯誤都是一樣, 同樣將”1.1 //EN”之間的空位刪除, 然後儲存檔案。

將電子書再 ZIP 成 epub 檔案, 上傳往 IDPF 網站再作 Validation, 看看結果如何。

好了, 首四個錯誤解決了, 只餘下兩個錯誤訊息:

idpf-validator-error-06

兩個錯誤檔案都是 myfirstbook.epub, 錯誤指示都是:

resource OEBPS/fonts/MinionPro-Bold.otf cannot be decrypted

這錯誤十分明顯, 是在製作 ePUB 電子書時用了特別的字體。

要解決這錯誤應該十分容易, 只要在 InDesign Export 出 ePUB 檔案時不要選擇 “Include Embeddable Fonts” 便可以了, 如下圖所示:

idpf-validator-error-07

將電子書 epub 檔案上傳往 IDPF 網站再一次作 Validation, 看看結果如何。

看! 所有錯誤都解決了, 現在的 ePUB 電子書是100% 符合標準的。

idpf-validator-error-08

所以, 要 ePUB 電子書是100% 符合標準並不是不可能的。

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *