Marketing Digital

29 out, 2014

Criação de arquivos ePub com ferramentas livres

Publicidade

Em contraste com o PDF e seu aspecto tipicamente fixo, o formato de e-livros chamado ePub adapta-se para acomodar o conteúdo ao dispositivo que o exibe. Os usuários também podem definir o tipo e o tamanho da fonte para tornar a leitura mais agradável. Esse formato foi popularizado pelos principais fornecedores de hardware leitor de conteúdo, como iTunes, da Apple, Kindle e outros.

Livros abertos

O ePub é um padrão aberto divulgado pelo IDPF (International Digital Publishing Foundation). Simplificando, o ePub é um tipo de site zipado: o conteúdo é armazenado em documentos XHTML, e as imagens são armazenadas como SVG ou bitmap. Se você adicionar uma pitada de regras CSS, uma descrição de conteúdo, e uma estrutura de navegação em vários formatos XML, terá como resultado um ePub. Não existe ferramenta universal para a criação de livros ePub a partir de qualquer formato de entrada concebível.

Atualmente, os usuários podem escolher entre uma série de programas que suportam um ou vários formatos de entrada principais. Neste artigo, vou testar documentos ODT (Open Text Document), DocBook e formatos de entrada LaTex. Além disso, vou mostrar como escrever documentos ePub nativamente usando Sigil, um editor WYSIWYG de ePub. Com o programa de linha de comando EpubCheck, você pode facilmente verificar a qualidade dos ePubs que criar.

Calibre

A ferramenta de código aberto Calibre permite gerar documentos ePub a partir de arquivos ODT. O programa está disponível no repositório de várias distribuições Linux. Por exemplo, no Ubuntu o pacote chama-se calibre. A última versão do software no momento em que escrevi este artigo era a versão 0,744.

Para criar um ePub, primeiro será necessário adicionar seu arquivo de entrada ODT à biblioteca do Calibre. Para fazer isso, pressione o ícone do livro no canto esquerdo da barra de ferramentas. Em seguida, defina os metadados para o livro, ou, pelo menos, o título e o autor (figura 1). Pressione o botão Info no menu para isso. Você pode então selecionar um arquivo de imagem para a capa na caixa de diálogo.

Para criar o ePub, pressione o botão Convert na barra de ferramentas do Calibre, passo que irá exibir uma janela com ícones para a definição de várias opções. As configurações são descritas através de dicas e contextos exaustivos. É possível definir o tamanho da fonte de base com o ícone Look & Feel. O Calibre então tornará este o tamanho da fonte principal do documento de entrada e, em seguida, todos os outros tamanhos de fontes usando uma chave de tamanho de fonte, que é possível modificar manualmente, se necessário. A altura mínima da linha é calculada com uma porcentagem do tamanho da fonte de base. Esta seção tem um número de opções para a otimização de texto; por exemplo, você pode mudar vírgulas e outras pontuações para os padrões tipograficamente corretos. A caixa extra de CSS permite que sejam especificadas regras CSS adicionais.

O ícone do processamento heurístico oferece um processo de correção para a remoção de hifenização no final das linhas, assumindo que a palavra ocorra pelo menos uma vez no texto, sem hífen. Também é possível definir as margens da página e selecionar um perfil de saída para otimizar seu ePub para um leitor específico. Os padrões genéricos são uma espécie de meio termo que atende à maioria dos leitores de mercado.

Figura 1: A interface gráfica do Calibre possui um formulário para o envio de metadados do e-book.
Figura 1: A interface gráfica do Calibre possui um formulário para o envio de metadados do e-book.

Definições com XPath

Uma função interessante para definir capítulos, inserir quebras de página e outras opções depende de expressões XPath para selecionar partes de um documento XML – por exemplo, todos os títulos dos capítulos. O Calibre aplica as expressões no documento XHTML, que depois serão utilizadas no arquivo ePub. Para ver o que está acontecendo, abra o ePub gerado no visualizador embutido (através do menu View) e verifique os elementos que estão sendo processados. É possível fazer isso escolhendo o menu Inspect ao passar o mouse sobre um elemento, como um cabeçalho (figura 2). Após fazer isso, defina as expressões XPath para os níveis da estrutura de tópicos.

Figura 2: Você pode inspecionar os elementos do seu ePub usando expressões XPath.
Figura 2: Você pode inspecionar os elementos do seu ePub usando expressões XPath.

A expressão // * do XPath corresponde a todos os elementos de um documento XML. Um predicado irá restringir esses elementos a um subconjunto, como seu nome e valor de atributo. Por exemplo,
// * [@ class = ‘P-título’] pode ser o título do livro,
// * [name () = ‘h1’] pode ser os capítulos, e
// * [name () = ‘h2 ‘] pode ser os cabeçalhos (figura 3).

Figura 3: Expressões XPath adicionam estrutura retrospectivamente a um documento.
Figura 3: Expressões XPath adicionam estrutura retrospectivamente a um documento.

O manual do Calibre também inclui um tutorial sobre XPath. O recurso Search & Replace permite substituir passagens de texto usando expressões regulares. As expressões regulares que corrigem ortografia, por exemplo, podem ser testadas em uma pré-visualização do código-fonte. Mais opções para a geração do ePub podem ser definidas na tela de saída do ePub. Por exemplo, é possível desativar a imagem da capa que foi gerada automaticamente, assinalando a opção No default cover.

O Calibre pode fazer mais do que apenas criar ePubs. O software também é um gerenciador de coleções de livros eletrônicos que permite aos usuários adicionar vários formatos de livro digital às suas bibliotecas. Além disso, o programa pode fazer download de conteúdo da web e empacotá-lo sob o formato de livro.

Writer2ePub

Usuários do LibreOffice e OpenOffice também pode exportar documentos ePub diretamente dos processador de texto Writer. Para fazer isso, instale a extensão Writer2ePub que possui licença GPL (a versão 1.1.11 é a mais recente). Após completar a instalação e reiniciar o programa do LibreOffice ou OpenOffice, você verá três botões adicionais na barra de ferramentas do Writer (figura 4).

É possível usar os botões para criar um livro no formato ePub a partir do documento atual, inserir metadados ou definir determinados parâmetros para o ePub. Além disso, o Writer2ePub permite definir uma imagem de capa e fontes personalizadas; no entanto, essa extensão mostrou algumas deficiências no cumprimento das normas padrão do XHTML gerado. Isso significa que os autores de e-books podem usar o processador de texto livre como uma espécie de editor WYSIWYG. No entanto, uma vez que evita uma estrita separação entre conteúdo, estrutura e visualização, o resultado pode não ser um documento ePub com o estilo e a qualidade que você deseja. A abordagem descrita na próxima seção define os diferentes padrões.

Figura 4: Itens de menu adicionais para a extensão Writer2ePub do LibreOffice Writer.
Figura 4: Itens de menu adicionais para a extensão Writer2ePub do LibreOffice Writer.

Documentação dbtoepub

Técnicos muitas vezes usam o formato DocBook, que pode ser transformado em uma variedade de formatos, graças à coleção de estilos livres DocBook XSL. A ferramenta de linha de comando dbtoepub aplica o módulo ePub de DocBook XSL para seus arquivos de entrada e empacota os resultados em um arquivo ZIP com a extensão .epub. Quando a ferramenta for executada, você deve especificar o arquivo XSL fonte necessário com a opção –stylesheet:

$ dbtoepub ‑‑output probe‑db5.epub U  
  ‑‑stylesheet /usr/share/xml/docbook/stylesheet/docbook‑xsl/epub/docbook.xsl U    
    probe‑db5.xml

Os usuários da ferramenta dbtoepub podem integrar as suas próprias regras CSS e fontes ao ePub. O padrão ePub estipula o uso de arquivos de fontes OTF sempre que possível, e uma família de fontes de código aberto como a LinuxLibertine sempre vai ser uma boa escolha. As fontes são integradas ao HTML através de regras CSS no arquivo styles.css (listagem 1). A instrução font-family atribui a fonte LinuxLibertine para o corpo do documento HTML. A regra font-face atribui font-weight normal e atributos de estilo da fonte para o arquivo de fonte LinLibertine_DR.otf. Veja como incorporar isso no ePub:

$ dbtoepub ‑‑output probe‑db5.epub ‑‑font linlib/LinLibertine_DR.otf ‑‑css styles.css U  
  ‑‑stylesheet /usr/share/xml/docbook/stylesheet/docbook‑xsl/epub/docbook.xsl U    
    probe‑db5.xml

Listagem 1:  style.css

01  body { 
02    font‑family: Libertine; 
03    /* font‑weight, font‑style 
04       normal als Default */ 
05  } 
06  @font‑face { 
07    font‑family: Libertine; 
08    font‑weight: normal; 
09    font‑style: normal; 
10    src: url(LinLibertine_DR.otf) 
11  }

Para inserir vários arquivos de fonte, repita a opção de linha de comando –font e crie regras CSS adicionais no arquivo styles.css. A camada de personalização permite que você modifique a maneira como o DocBook XSL cria ePubs. Para fazer isso, é preciso criar uma folha de estilo XSL, que primeiro integra a folha de estilo para criar ePubs e depois substitui algumas partes dele. A listagem 2 define o parâmetro epub.cover.linear para “1” para que a imagem da capa seja apontada como a primeira página; caso contrário, a última página será o padrão. Um link para uma imagem de capa no DocBook 5 se parece com a listagem 3. A camada de personalização tenderá a encher de entradas de links; uma vez que você esteja familiarizado com o DocBook XSL, irá querer escrever os seus próprios filtros de saída. Os autores do DocBook XSL definem a marcação de metadados para ePub no DocBook.

Listagem 2: Camada de customização

01 <?xml version='1.0'?>
02 < xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
03 < xsl:import href="/usr/share/xml/docbook/stylesheet/ docbook‑xsl/epub/docbook.xsl"/> 04 <xsl:param name="epub.cover.linear" select="1" />
05 </xsl:stylesheet>

Listagem 3: Apontando a imagem da capa no DocBook

01  <?xml version="1.0" encoding="UTF‑8"?> 
02  <book version="5.0" xmlns="http://docbook.org/ns/docbook"> 
03    <info> 
04      <title>ePub with dbtoepub</title> 
05      <cover> 
06        <mediaobject> 
07          <imageobject> 
08            < imagedata fileref="images/cover‑docbook.png"> </imagedata> 
09          </imageobject> 
10        </mediaobject> 
11      </cover> 
12    </info> 
13  …

Pandoc

O layout da linguagem de marcação LaTeX também pode ser usado como um formato de entrada para documentos ePub, e o programa em linha de comando Pandoc fornece um conversor para essa finalidade. A ferramenta, licenciada sobre a GPLv2, pode criar uma variedade de formatos, incluindo ODT, HTML, e DocBook, assim como ePub. A versão atual do conversor é 1.8.11.

Se sua distribuição não inclui um pacote Pandoc, poderá instalar o software usando a ferramenta Haskell cabal install. O Cabal está incluído em muitas distribuições Linux, como Debian, Ubuntu e Fedora. Uma vez que as dependências do pacote binário Cabal não estão totalmente definidas no Ubuntu, será preciso seguir a Listagem 4 para instalar os arquivos de cabeçalho Zlibg necessários.

Instalando Pandoc

$ apt‑get install zlibg‑dev
$ apt‑get install cabal‑install
$ cabal update 
$ cabal install cabal‑install 
$ cabal install pandoc

Como essa abordagem coloca o Pandoc no diretório Cabal abaixo do seu diretório home, será necessário adicionara linha PATH = $ PATH: ~/.cabal /bin ao seu caminho. O comando a seguir cria um livro ePub a partir de um arquivo LaTeX:

$ pandoc ‑‑from latex ‑‑to epub U  
  ‑‑output probe‑latex.epub probe‑latex.tex

O Pandoc oferece muitas opções de linha de comando. O programa permite aos usuários adicionar regras CSS e metadados para ePubs, gerar tabelas de conteúdos ou remover erros de digitação com a opção –smart. Algumas outras opções podem ser obtidas com:

$ pandoc ‑‑from latex ‑‑to epub ‑‑toc ‑‑smart ‑‑epub‑stylesheet style.css U  
  ‑‑output probe‑latex.epub ‑‑epub‑metadata meta‑pandoc probe‑latex.tex

Além disso, o Pandoc oferece uma série de mecanismos de pré-criação de fórmulas para notação Tex em HTML. Uma vez que o uso de MathML e JavaScript não será padronizado até que a próxima versão da especificação de ePub seja liberada, esse recurso pode ser usado como uma solução alternativa.

Sigil

Se você prefere escrever e-books diretamente em conformidade com a especificação de ePub vigente em vez de converter o material a partir de outro formato, o Sigil é a ferramenta. O aplicativo, licenciado sob a GPLv3, é um editor WYSIWYG para e-books bastante robusto, que cria automaticamente os arquivos de controle necessários, mas ainda permite que você os modifique manualmente, caso queira. Enquanto estiver trabalhando na área de entrada de texto do editor WYSIWYG, poderá selecionar modelos, tais como Título 1 a partir de um menu drop-down na barra de ferramentas. Além disso, o Sigil vem com um editor de código-fonte cuja versão atual é 0.4.0. O Sigil torna mais fácil adicionar imagens ao texto. Para isso, basta pressionar o botão com o ícone de imagem na barra de ferramentas. A imagem selecionada é então copiada para o ePub e exibida no editor WYSIWYG (figura 5).

Figura 5: A visualização dividida no Sigil: editor WYSIWYG no topo, o código-fonte na parte inferior, e a estrutura de diretórios à esquerda.
Figura 5: A visualização dividida no Sigil: editor WYSIWYG no topo, o código-fonte na parte inferior, e a estrutura de diretórios à esquerda.

Para definir a formatação do documento XHTML, é possível adicionar regras CSS ao documento. Para começar, crie um arquivo de folha de estilo vazia na pasta Styles, selecionando-o a partir do menu contextual. Será possível, então, abrir a folha de estilo em uma guia e definir detalhes específicos do CSS usando, por exemplo:

body { font‑size: 9px }
h1 { text‑align: center } 
img { display: block}

Esses detalhes se relacionam com todos os elementos do documento XHTML. A primeira regra define o tamanho da fonte no corpo do documento. O parâmetro de títulos h1 mostra a centralização do texto. Imagens, com a tag img, são sempre apresentadas como blocos, isto é, ocupam o espaço entre as margens direita e esquerda da área de visualização. Para vincular suas regras CSS com o documento XHTML, será preciso adicionar o seguinte na área de cabeçalho do documento XHTML:

<link href="../Styles/Style0001.css" rel="stylesheet"   
  type="text/css" />

A estrutura em árvore do menu de seleção à esquerda reflete a estrutura de diretório do arquivo ePub. Os caminhos são sempre relativos. Por exemplo, no caso do documento XHTML, eles são a relação do arquivo XHTML com o diretório de texto. Para adicionar metadados ao documento, como título, você pode usar Ferramentas | Editor de Meta. Para outros metadados, será preciso adicionar manualmente os detalhes, como elementos meta no arquivo content.opf. O formato ePub suporta metadados Dublin Core, que são identificáveis pelo prefixo dc: namespace à esquerda dos nomes dos elementos:

<dc:indentifier>978‑456‑987‑12</dc:identifier> 
<meta name="price" content="EUR 19.99"/>

O Sigil gera automaticamente identificadores exclusivos para ePub e também é útil para a edição de ePubs existentes. Por exemplo, é possível incorporar fontes retrospectivamente, utilizando o menu contextual para adicionar arquivos de fonte e, em seguida, definir as regras CSS correspondentes.

EpubCheck

O programa de linha de comando EpubCheck verifica a qualidade dos documentos ePub e ajuda na solução de problemas. Possui licença BSD e está atualmente na versão 1.2. Na figura 6, você pode ver a ferramenta reclamando sobre a falta de metadados no componente content.opf de um documento de exemplo defeituoso e identifica tags de vídeo e tags de script no documento XHTML Section0001.xml, que não são permitidos até a versão 3 da especificação de ePub. Antes de publicar o material, você deve verificar o produto final com EpubCheck em busca de potenciais problemas. Depois de descompactar o ePub com o comando nomedoepub.epub unzip, você pode facilmente realizar as alterações necessárias e compactar novamente o material, digitando o comando zip nomedoepub.epub -Xr9D *.

Figura 6: O aplicativo EpubCheck reclama de detalhes que faltavam em um elemento não-padrão.
Figura 6: O aplicativo EpubCheck reclama de detalhes que faltavam em um elemento não-padrão.

Conclusão

A comunidade open source tem uma seleção muito útil de programas que criam e-books no formato ePub. Uma variedade de formatos pode ser utilizada como arquivo de entrada para conversão. O Sigil é uma boa escolha para fazer melhorias em ePubs e aproveita todo o potencial do formato. Nenhuma dessas ferramentas suporta criptografia digital do ePub no formato Digital Rights Management (DRM).

Os atributos de ePub descritos neste artigo permanecem em vigor na versão 3 da especificação. A versão 3 da especificação adicionalmente irá suportar vídeo, recursos JavaScript, fontes WOFF, MathML, SVG e documentos em um ePub. A versão 3 do ePub usará documentos de navegação em vez do formato típico NCX. A versão XML do HTML5 em vez da versão XHTML, e XML 1.0 em vez de XML 1.1 também são novidades.