Comece fazendo. Se você tem um EPUB por perto, é só isto.
.epub para .zip É isso. Sem software especial. Um EPUB é um ZIP, então ele se desempacota sem sequer um aviso.
Você pode pensar «se descompacta, então compactar uma pasta e renomear para .epub faz um EPUB». Não é tão simples, por causa das regras sobre como ele precisa ser comprimido descritas na próxima seção.
Desempacotado, geralmente fica assim.
OEBPS — esse nome de pasta, e como as coisas se dividem dentro dela, variam conforme a ferramenta que construiu. Pode ser item ou xhtml no lugar, e não tem problema.
O que você não pode mudar, nem de nome nem de posição, é o mimetype na frente e o META-INF/container.xml . Esses dois são fixos e todo o resto é livre — esse é o passo um para entender a estrutura.
O conteúdo dele é uma única linha.
A função dele é declarar «este ZIP é um EPUB». Mas ele vem com regras rígidas que nenhum outro arquivo tem.
Um aplicativo de leitura consegue decidir «isto é um EPUB» lendo só os primeiros bytes do arquivo. É por isso que a posição e a forma estão fixadas.
Compacte uma pasta com uma ferramenta comum e você não consegue escolher a ordem dos arquivos, e o mimetype é comprimido junto com todo o resto. O resultado: você renomeia para .epub e os aplicativos de leitura não abrem.
Atender à condição de «primeiro, sem compressão» significa rodar a compactação em duas etapas separadas. É a primeiríssima coisa que uma ferramenta de construção de EPUB faz.
META-INF/container.xml tem esta cara.
Ele faz exatamente uma coisa: diz «os dados do livro estão em OEBPS/content.opf ».
É graças a essa placa que os nomes de pasta podem ser livres. Um aplicativo de leitura olha primeiro o META-INF/container.xml e vai para onde ele apontar.
Este é o arquivo mais importante de um EPUB. Ele se divide em três partes.
| Parte | O que faz |
|---|---|
| metadata | Título, autor, idioma — os dados do próprio livro |
| manifest | Uma lista de todos os arquivos incluídos |
| spine | A ordem em que as páginas viram |
O que merece atenção é o dc:title . O que aparece na estante de um aplicativo de leitura é este valor, não o nome do arquivo. Por melhor que você tenha nomeado o arquivo, se isto estiver vazio a estante mostra «Untitled».
dc:language também importa. Ponha pt-BR para português do Brasil, ja para japonês. Sem isso, um aplicativo de leitura pode não aplicar as regras de composição do idioma — o que pesa mais no japonês.
Todos os arquivos do EPUB precisam ser registrados aqui. Acrescente uma imagem e esqueça de registrá-la, e só isso já é um erro. O contrário — registrada mas não presente — também é erro.
O arquivo do sumário é marcado com properties="nav" , que é como ele diz «este arquivo é o sumário».
manifest é a lista do que há dentro; spine é em que ordem se lê. A ordem daqui vira a ordem das páginas.
E a parte que mais importa num livro japonês é page-progression-direction .
| Valor | Significado | Livros que usam |
|---|---|---|
| rtl | Avança da direita para a esquerda | Texto vertical, mangá |
| ltr | Avança da esquerda para a direita | Texto horizontal |
Deixe isso de fora de um livro composto em vertical e as páginas viram ao contrário. É uma das primeiras coisas a conferir quando o texto vertical não funciona.
O EPUB 3 sempre exige o sumário como arquivo próprio. Ele parece uma lista comum de links em HTML, distinguida pela marca epub:type="toc" .
É isto que aparece quando o leitor aperta o botão de sumário. Se falta um arquivo linkado, você tem um livro pelo qual não dá para navegar.
No antigo EPUB 2, um arquivo chamado toc.ncx fazia o trabalho do sumário. O EPUB 3 o substituiu pelo nav.xhtml , mas alguns EPUB incluem os dois para que os aplicativos de leitura antigos continuem funcionando.
Daqui em diante é praticamente igual a uma página web.
Como você divide o texto é decisão sua, mas um arquivo grande demais deixa os aplicativos de leitura lentos, então dividir por capítulo é o normal.
Como você viu, a estrutura de um EPUB não é complicada. Texto, imagens e instruções de design empacotados numa caixa com uma placa e uma lista — é só isso.
As regras a obedecer, porém, são chatinhas.
mimetype vai primeiro, sem compressãomanifest spine Se faltar um, o livro não abre ou é recusado no envio para a loja. E a causa do erro normalmente não é visível no que aparece na tela.
Por isso, na produção real, usa-se uma ferramenta que monta a estrutura a partir de um manuscrito ou de imagens. Ainda assim, ter olhado por dentro uma vez significa que você consegue adivinhar onde olhar quando algo dá errado — que é o objetivo deste artigo.
O EPUB FACTORY constrói automaticamente cada parte da estrutura descrita aqui. Basta escolher uma pasta de imagens ou um manuscrito de texto. Sem cadastro e sem instalar nada.
Testar o EPUB FACTORY