Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

A primeira vez que acessar o developerWorks, um perfil será criado para você. Informações do seu perfil (tais como: nome, país / região, e empresa) estarão disponíveis ao público, que poderá acompanhar qualquer conteúdo que você publicar. Seu perfil no developerWorks pode ser atualizado a qualquer momento.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Desenvolver um Livro Digital com EPUB

O formato de eBook baseado em XML livre

Liza Daly, Software Engineer and Owner, Threepress Consulting Inc.
Photo of Liza Daly
Liza Daly é engenheira de software especializada em aplicativos para o segmento de mercado de publicações. Ela é desenvolvedora líder dos principais produtos online da Oxford University Press, O'Reilly Media e outros publicadores. Atualmente, é consultora independente e fundadora da Threepress, um projeto de software livre desenvolvendo aplicativos ebook.

Resumo:  Precisa distribuir documentação, criar um eBook, ou somente arquivar suas postagens no blog favoritas? EPUB é uma especificação aberta para livros digitais baseados em tecnologias familiares como XML, CSS e XHTML, e arquivos EPUB podem ser lidos em dispositivos de e-ink móveis, telefones celulares e computadores desktop. Este tutorial explica o formato EPUB em detalhes, demonstra a validação do EPUB usando tecnologia Java e mostra, passo a passo, a criação de EPUB automatizado, usando DocBook e Python.

5 fevereiro 2009 - Seguindo comentários dos leitores, a autora revisou o conteúdo da Listagem 3 e atualizou o arquivo epub-raw-files.zip (consulte Downloads).

27 abril 2010 - Atualizou o arquivo epub-raw-files.zip (consulte Downloads).

3 junho 2010 - A pedido da autora, revisou o conteúdo das Listagens 3 e 8. Também atualizou o arquivo epub-raw-files.zip (consulte Downloads).

11 janeiro 2011 - A pedido da autora, revisou o conteúdo da Listagem 5. Alterou a segunda linha do código de <item id="ncx" href="toc.ncx" media-type="text/xml"/>; para <item id="ncx" href="toc.ncx" media-type="application/x-dtbncx+xml"/>.

12 julho 2011 - Seguindo comentários dos leitores, revisou o conteúdo da Listagem 14. Removeu o caractere ` perto do final da linha de código de <?xml version="1.0" encoding="utf-8"?`>. O código foi revisado e agora é: <?xml version="1.0" encoding="utf-8"?>.

Data:  01/Out/2012
Nível:  Intermediário

Atividade:  3181 visualizações

Empacotar e Verificar seu EPUB

Nesta altura, você já deve ter um pacote configurável EPUB pronto para empacotar. Esse pacote configurável poderá ser um novo livro que você mesmo criou ou um que utiliza os arquivos brutos disponíveis de Downloads.

Empacotando seu arquivo EPUB como um archive ZIP

A parte do Formato de Contêiner OEBPS da especificação EPUB possui diversas coisas para serem expostas sobre EPUB e ZIP, mas as mais importantes são:

  • O primeiro arquivo no archive deve ser um arquivo tipo MIME (consulte Mimetype neste tutorial). O arquivo tipo MIME não deve ser compactado. Isso permite que utilitários não ZIP descubram o tipo MIME lendo os bytes brutos, começando da posição 30 no pacote configurável EPUB.
  • O archive ZIP não pode ser criptografado. O EPUB suporta criptografia mas não no nível do arquivo zip.

Usando ZIP versão 2.3 sob um sistema operacional como o UNIX®, crie o arquivo EPUB ZIP em dois comandos, como em Listagem 11. (Esses comandos presumem que seu diretório atualmente em funcionamento seja seu projeto EPUB).


Listagem 11. Empacotando o EPUB em um arquivo epub+zip válido

$ zip -0Xq  my-book.epub mimetype
$ zip -Xr9Dq my-book.epub *

No primeiro comando, você cria o novo archive ZIP e inclui o arquivo tipo MIME sem nenhuma compactação. No segundo, você inclui os itens restantes. Os sinalizadores -X e -D minimizam as informações irrelevantes no arquivo zip; -r incluirá recursivamente o conteúdo dos diretórios META-INF e OEBPS.


Validação do EPUB

Embora o padrão do EPUB não seja especialmente difícil, seus arquivos XML devem ser validados com esquemas específicos. Se você usar um editor XML ciente de esquema para gerar os metadados e XHTML, já terá mais de meio caminho andado. Faça uma verificação final com o pacote EpubCheck (consulte Resources).

Adobe mantém o pacote EpubCheck, e está disponível como um software livre sob licença de Berkeley Software Distribution (BSD). É um programa Java que pode executar como uma ferramenta independente ou como um aplicativo da web, ou pode ser integrado em um aplicativo que execute em Java Runtime Environment (JRE) versão 1.5 ou posterior.

Executá-lo a partir da linha de comando é simples. Listagem 12 dá um exemplo.


Listagem 12. Executando o utilitário EpubCheck

$ java -jar /path/to/epubcheck.jar my-book.epub

Se você falhar ao criar alguns dos arquivos auxiliares ou se introduziu um erro nos arquivos de metadados, poderá obter uma mensagem de erro semelhante aquela em Listagem 13.


Lista 13. Amostra de erros do EpubCheck

my-book.epub: image file OEBPS/images/cover.png is missing
my-book.epub: resource OEBPS/stylesheet.css is missing
my-book.epub/OEBPS/title.html(7): 'OEBPS/images/cover.png': 
     referenced resource missing in the package

Check finished with warnings or errors!

Pode ser necessário configurar seu CLASSPATH aqui para apontar para o local da instalação EpubCheck, já que ele possui algumas bibliotecas externas para importar. Você provavelmente precisará configurar o CLASSPATH se receber uma mensagem como:

org.xml.sax.SAXParseException: no implementation available for schema language 
   with namespace URI "http://www.ascc.net/xml/schematron"

Se a validação foi bem-sucedida, verá "Nenhum erro ou avisos detectados". Nesse caso, parabéns por produzir seu primeiro EPUB!


Visualização do EPUB

Testar não serve somente para validação: Trata-se também de certificar-se de que o livro esteja correto. As folhas de estilo funcionam corretamente? As seções estão realmente na ordem lógica correta? O livro inclui todo o conteúdo esperado?

Diversos leitores do EPUB estão disponíveis para você usar para testar. a Figura 1 mostra uma captura de tela de Adobe Digital Editions (ADE), o leitor do EPUB mais usado normalmente.


Figura 1. O EPUB no ADE

As cores da fonte e imagens estão aparecendo, o que é bom. O ADE não apresenta renderização correta no título em uma fonte sans-serif, apesar de que isso pode ser um problema com o CSS. É interessante aqui verificar em outro leitor. a Figura 2 mostra o mesmo livro renderizado em meu software livre, Bookworm, leitor do EPUB baseado na web.


Figura 2. O EPUB em Bookworm

Neste caso, acontece apenas que esse ADE não suporta essa declaração particular. Conhecer as sutilezas de um software de leitura individual será fundamental se em seu livro digital for importante uma formatação precisa.

Agora que você já passou pelo processo trabalhoso de criação de um EPUB simples a partir de rascunho, veja o que é preciso para converter DocBook, um esquema de documentação XML comum, em EPUB.

4 de 9 | Anterior | Próximo

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Desenvolvimento móvel
ArticleID=837870
TutorialTitle=Desenvolver um Livro Digital com EPUB
publish-date=10012012
author1-email=liza@threepress.org
author1-email-cc=