Testando seus ePUBs: Calibre Content Server

Márcio Duarte, em 01/05/2012. Categoria: Dicas, Laboratório do eBook 8

Atualização (21/01/2013): o app Calibre Companion facilita um pouco esse processo. Saiba mais

Apesar da maior parte dos dispositivos e aplicativos de leitura de livros digitais se basearem em apenas dois motores de renderização de eBooks, – Webkit e Adobe Reader Mobile SDK – não é raro encontrar variações na interpretação do código entre os programas que usam o mesmo motor, principalmente em livros com formatação mais complexa, simplesmente por que há diferentes versões e implementações desses engines. Na prática, testar o seu ePUB para garantir a ele o título de “livro multiplataforma” acaba indo além de validá-lo somente no iBooks (Webkit) ou no Adobe Digital Editions (RMSDK), dois dos maiores representantes dos referidos motores. É recomendável testá-lo também em outros programas e aparelhos de leitura, um processo que, geralmente, leva tempo e, na grande maioria dos casos, não conta com ferramentas especializadas para isso (Nota: em breve um post sobre quais eReaders e aplicativos são mais recomendados para testar seus eBooks).

Sem fios!

No caso dos eReaders com tela e-ink, as opções padrão se limitam a conectar o dispositivo ao desktop via USB para ter acesso ao espaço de armazenagem interno e só então copiar o seu livro para a pasta correspondente, de forma direta, via sistema, ou com a ajuda de outro programa, como o ADE, em um processo conhecido como sideloading. Para visualizar se a sua alteração no código foi bem sucedida, é necessário ejetar esse volume interno e, só então, atualizar a biblioteca do dispositivo… isso para cada dispositivo de teste. Executar uma tarefa como essa repetidas vezes, ao longo de semanas, não é nada produtivo.

Mas no caso de tablets e smartphones, há mais flexibilidade no processo de sideloading, que pode ser feito via Wi-Fi ou mesmo remotamente, pela web. Nesta série de artigos, veremos quais são as principais opções para testar seus livros com mais eficiência nas principais plataformas do mercado, suas vantagens e desvantagens, começando pelo…

Calibre Content Server

O Calibre, velho conhecido gerenciador de livros digitais para múltiplas plataformas, pode ser usado como um servidor de arquivos particular, baseado no sistema OPDS (Open Publication Distribution System) que é muito útil para testar seus livros diretamente via Wi-Fi, ou via web, nos programas que suportam o OPDS, como o Aldiko e o Moon+ (veja uma lista completa de programas que “conversam” com o Calibre). Assim, você pode simplesmente arrastar seu livro para a janela do Calibre e ele estará disponível diretamente na interface de adição de bibliotecas do programa de leitura do seu gadget Android que tenha acesso sem fio. Há outras opções para carregar arquivos remotamente, mas nenhuma oferece uma solução tão universal, especificamente voltada a eBooks como o servidor OPDS.

Biblioteca do Calibre e a interface do servidor de livros

Figura 1: Biblioteca do Calibre e a interface do servidor de livros

Mesmo nos dispositivos iOS (iPhone, iPad, iPod Touch), o servidor interno do Calibre é uma alternativa para carregar seus livros mais rapidamente nos programas de leitura sem conectar o dispositivo via USB. Abrindo o endereço do servidor do Calibre no Safari Mobile, é possível escolher em que aplicativo deseja abrir o arquivo ePUB: um recurso nativo do sistema da Apple.

Abrindo o servidor do Calibre pelo Safari Mobile, no iPad

Figura 2: Abrindo o servidor do Calibre pelo Safari Mobile, no iPad

Vantagens

  • Funcionalidade grátis e multiplataforma;
  • Atualização sem fios: é mais flexível que o sideloading tradicional via USB, permitindo que possa ser usado em vários aparelhos ao mesmo tempo;
  • Funciona com os aplicativos de leitura também no emulador do Android, caso você não tenha um dispositivo real (mais sobre isso, em um próximo artigo);
  • A solução mais universal para testar seus livros nos aplicativos de ePUB do Android (e em alguns eReaders também);
  • Pode ser usado também para criar a sua biblioteca pessoal na nuvem.

Desvantagens

  • Não é uma solução criada especificamente para produtores de eBooks, como o Book Proofer da Apple é para o aplicativo iBooks (iOS). Nele, o livro pode ser editado sem envio para a biblioteca e atualização no eReader, todo o processo é feito pelo aplicativo, que atualiza constantemente o iBooks a cada alteração. Mas como o Calibre não foi criado com essa finalidade, não há muita esperança nesse sentido.

Como usar

1º passo: no Calibre, vá até o menu “Preferências > Preferências” e clique na opção “Compartilhando pela rede”. Verifique as configurações e ative o servidor no botão “Iniciar servidor”.

Janela de preferências do Calibre

Figura 3: Janela de preferências do Calibre

2º passo: adicione o seu livro à biblioteca do Calibre;

3º passo: ainda no computador, verifique o seu número IP na rede local (saiba como encontrar o seu IP no Windows e no Mac).

Janela de rede nas preferências do sistema do Mac

Figura 4 : Janela de rede nas preferências do sistema do Mac

4º passo: abra o programa de leitura desejado (Aldiko, Moon+, FBReader etc) no seu dispositivo (tablet, smartphone) e localize a função para adicionar um novo catálogo. No Aldiko, por exemplo, clique no ícone de carrinho de compras, depois do botão do aparelho e em “Meus catálogos”. Clicando no botão “+” você adiciona um novo catálogo. Insira um nome para o seu catálogo e o seu IP, seguido da porta especificada nas preferências do Calibre. Um exemplo: 192.168.1.20:8080 (o valor após os dois pontos é o número da porta).

Inserção do endereço do servidor. À esquerda, no app Moon+, à direita, no Aldiko

Figura 5: Inserção do endereço do servidor. À esquerda, no app Moon+, à direita, no Aldiko

Abrindo o link para o servidor você encontrará todos os livros no catálogo do Calibre que estão no seu desktop. De lá você pode adicionar livro à biblioteca do aplicativo.

 Interface do catálogo no Moon+ e no Aldiko

Figura 6: Interface do catálogo no Moon+ e no Aldiko, com todos os livros da biblioteca criada no desktop

5º passo: Para visualizar no eReader as alterações no código do seu livro feitas a partir do desktop, adicione o livro novamente à biblioteca do Calibre e atualize o catálogo do aplicativo de leitura (clique no botão voltar do seu dispositivo e abra novamente o link).

Não há dúvidas que esse processo está longe do ideal. Testar livros nos ereaders, tablets ou smartphones ainda é um processo pouco eficiente, mas a solução oferecida pelo Calibre já auxilia nessa etapa. No próximo artigo da série, veremos como uma abordagem alternativa para testar seus livros durante o desenvolvimento: pela dobradinha Wi-Fi/FTP.

Atualização (21/01/2013): O desenvolvedor do Calibre lançou um aplicativo (Calibre Companion, pago, só para Android) para facilitar o gerenciamento de livros da sua biblioteca que pode ser usado para reduzir os passos para testar seus livros nos dispositivos Android. Em vez de abrir o servidor de arquivos do Calibre em cada app de leitura para atualizar o livro, como explicado neste artigo, o app oferece uma interface única, via WiFi, para carregar o seu livro em qualquer programa de leitura instalado no seu dispositivo Android (figura 7). Se você precisa realizar essa tarefa muitas vezes no Android, vale o preço.

Calibre Companion

Figura 7: Interface do Calibre Companion para carregamento de eBooks para os apps de leitura.

Padronização do design dos eBooks: hyperlinks

Márcio Duarte, em 16/09/2011. Categoria: ePub Bugs, Laboratório do eBook 0

O suporte a folhas de estilo CSS nos leitores de ePub é muito irregular, para não dizer sofrível. Mesmo atributos simples como uma simples alteração de cor nos hyperlinks não é garantida em todos os leitores. O iBooks, leitor de eBooks da Apple que usa o motor de renderização Webkit, é um exemplo disso. Recusa-se a aceitar a alteração na cor dos links, mesmo se o CSS for aplicado inline, junto ao código, o que deveria ter a preferência sobre outros estilos. A cor padrão aplicada pelo programa é um púrpura (fig. 1) que possui pouco contraste com a cor preta padrão do texto. O resultado é que muitos links são difíceis de encontrar à primeira vista. Mudar a sua cor da forma padrão não funciona no iBooks. Por exemplo: ao usar o CSS a { color: red; }, nada acontece. A mesma cor púrpura de sempre é utilizada. Se aplicarmos estilos inline (diretamente no código HTML) a cor é alterada, mas este tipo de aplicação do CSS é difícil de introduzir e atualizar. Isso acontece no iBooks, no Adobe Digital Editions (e em todos os eReaders que usam a mesma base, o Adobe RMSDK) estilos inline não são obedecidos.

Onde estão os links nessa página?

Figura 1: Um doce para quem encontrar os links neste texto :)

Investigando o problema

Mas será que não é mesmo possível alterar essa cor mantendo um padrão entre os diferentes eReaders? E outros atributos, como underline e cor de fundo? Como outros programas/dispositivos leitores se comportam nesse quesito? Para buscar soluções, criei um ebook de teste (Baixe: [download id="3"]) com diversas formas de se estilizar um link via CSS para testá-lo em diversos eReaders, e verificar como se comportam de acordo com o tipo de código: estilos inline, em folhas de estilo externas ou no cabeçalho do HTML. Como o iBooks utiliza o Webkit para renderizar as páginas, testei também várias extensões CSS desta engine para verificar como o eReader da Apple se comporta. As extensões CSS (ou CSS vendor extensions) do Webkit, assim como as de outros motores de layout como o Gecko (Firefox) e Trident (Internet Explorer), são propriedades de estilos CSS que afetam somente os programas que os utilizam como base, e não funcionam nos programas que não as usam. Assim podemos aplicá-los para (tentar) resolver problemas como estes, sem prejuizo algum para a interpretação do código do ePub.

Fiz algumas descobertas interessantes:

  • Como havia dito, uma parte dos eReaders, entre eles os que usam a mesma base do Adobe Digital Editions, simplesmente não reconhecem estilos inline, aplicados junto do código. O CSS especificado em uma classe ou diretamente à tag <a>, por meio de um CSS externo, foi aplicado corretamente. O iBooks, por sua vez, reconheceu os estilos inline, mas não os externos (por classe ou aplicados à tag <a> :P ;
  • No iBooks, se o texto do link estiver envolto por uma tag span, é possível alterar a cor do texto do link e a cor de fundo, mas o underline é mantido em outros leitores, pois é uma propriedade do link em si;
  • O CoolReader (programa relativamente popular e bastante utilizado na plataforma Android) não reconheceu os estilos aplicados por meio de “id” ou diretamente à tag <a> no CSS externo, apenas aqueles aplicados por meio de “class”;
  • Ao enclausuar o texto do link em uma tag <span>, o Nook ignorou a cor de fundo do link;
  • A extensão -webkit-text-fill-color é capaz de alterar a cor do texto do link no iBooks sem prejudicar a funcionalidade. A boa notícia é que outros eReaders que utilizam o Webkit também se beneficiam da mudança. Nos meus testes, os programas de leitura Stanza (iPad), iBis Reader (Online) e Moon+ Reader (Android) responderam à propriedade CSS -webkit-text-fill-color, ou seja, aplicaram a cor corretamente;
  • Inserir no ePub o arquivo com.apple.ibooks.display-options.xml, um arquivo geralmente utilizado em ePubs de layout fixo do iBooks, faz com que o programa aceite qualquer cor de link (permite também que fontes embutidas sejam utilizadas), mesmo sem a extensão -webkit-text-fill-color. Mas como é usado apenas no iBooks, não é uma opção muito universal;
  • Parece ser uma prática relativamente comum entre vários eReaders (Stanza, Laputa, FBReader e mesmo o Aldiko para Android) adotar uma espécie de pré-processamento do código, ou seja, ao ser aberto, o conteúdo do ePub é extraído e é renderizado pelo programa com a ajuda do seu próprio CSS, ignorando o CSS embutido no arquivo. Alguns leitores oferecem a possibilidade de carregar esse CSS especificado pelo designer, outros não (Laputa, FBReader, Stanza Desktop). Isso dificulta muito a padronização do projeto visual do ePub, pois cada eReader tem sua opinião sobre a melhor forma de apresentar o ePub, e ela nem sempre é a melhor possível. Seria importante que os programas permitissem que os estilos propostos pelo designer fossem carregados primeiro, assim como acontecem nos navegadores no caso de websites. Alguém já navegou em algum site onde o design do site foi todo redefinido pelo navegador ao ser aberto, sem sua solicitação? Creio que não.

Galeria 1: Imagens das telas de alguns eReaders. Note a discrepância na interpretação dos links.

Conclusões

A melhor abordagem ao estilizar links no ePub é aplicar uma classe qualquer à tag em questão e especificar os estilos em um arquivo CSS externo para afetar os eReaders baseados no RMSDK da Adobe, incluindo a propriedade -webkit-text-fill-color para os programas que usam Webkit, principalmente o iBooks. Não enclausure o texto do link em nenhuma tag, aplique o estilo à classe, se preciso. Assim, para especificar cor nos links dos seus ePubs inclua sempre no seu código:

/* HTML */
<a class=“link” href=“http://www.seulink.com”>Texto do link</a>
/* CSS */
a.link {
color: #suacor;
-webkit-text-fill-color: #suacor;
}

Esta é solução mais universal para estilização de links. Ainda assim, alguns eReaders como o FBReader e o Laputa Reader para Android sobrepõem completamente o CSS criado pelo designer do ePub. Outros, como o Moon+ Reader e o Aldiko, também para Android, só aceitam o CSS se o leitor especificar deliberadamente essa opção nas configurações do programa. Neste caso, não há muito o que fazer, mas como o código não interfere nos demais estilos e na performance do arquivo, é uma opção viável.

Lembrando que essa abordagem de usar extensões Webkit pode ser aplicada para buscar a solução de outros tipos de problemas de interpretação do CSS nos eReaders que usam esse “motor”, como o iBooks e o Stanza (iPad), mas não a utilize isoladamente para recursos fundamentais do livro, pois somente os eReaders com Webkit serão capazes de apresentá-los. O ideal seria mesmo que a especificação ePub (e o CSS que ela suporta) fosse implementada corretamente nos eReaders, mas até lá soluções como essa serão necessárias.

Padronização do visual do ePub: futuro distante

A dificuldade em se aplicar cores a um simples hyperlink mostra a complexidade em se produzir ePubs que fujam do default dos programas e busquem uma padronização no projeto visual do Livro eletrônico. Ainda estamos longe do estágio em que um arquivo com layout mais avançado seja lido de forma padronizada nos mais diversos eReaders. Quem sabe com a adoção do ePUB3 isso começa a se resolver. Até lá, muito teste e cautela na aplicação de estilos CSS para o ePub.