Come modificare un epub

Ieri sera ho acquistato un libro su bookrepublic.it, libro fortemente consigliato da un amico.

Purtroppo, una volta caricato sul mio e-reader, ho notato che i capitoletti di citazioni erano scritti in un carattere minuscolo. Interi paragrafi difficili da leggere.

Per fortuna sono nato nerd! E la situazione é a portata di mano!

In breve

Il formato epub é sostanzialmente un file zip contenente xhtml, css, immagini e metadati.

Ho scompattato, modificato css, ricompattato!

Fatto! 🙂

In lunga

Bene, vediamo passo a passo come si fa, bastano un pochino di manualitá con la shell linux e qualche conoscenza di css.

Scompattare il file

Essendo uno zip, lo decomprimiamo.

unzip "The Key, la Chiave - Joe Vitale.epub"

Ricerca delle parti incriminate

Vedremo comparire una lista di files tra cui (x)html e css, stessa tecnologia per scrivere le pagine web; noi andremo ad agire su quelli. Con grep cerchiamo il testo incriminato all’interno dei files xhtml che sono quelli che contengono il testo.

# grep "Una volta, stavo" OEBPS/Text/*xhtml
OEBPS/Text/Section0010.xhtml:    <p>Una volta, stavo parlando con un tale

Aprendo il file OEBPS/Text/Section0010.xhtml con il nostro editor di testo preferito (vim) troviamo la ”class” incriminata: citazione2

 <p class="infratestodiv">

Modifica del css

Adesso andiamo a modificare il css, nel mio caso ./OEBPS/Styles/Style.css, e cerchiamo ”infratestodiv

.infratestodiv p
{
        font-size: 16px;
        text-indent: 0px;
        margin-left: 50px;
}

Evidentemente al mio lettore non é piaciuto quel font-size!
Mantenendo l’indentazione e il margine, ho eliminato la dimensione del font.

.infratestodiv p
{
        //font-size: 16px;
        text-indent: 0px;
        margin-left: 50px;
}

Ricompattare

Ricompattare é forse il momento piú complicato, non basta zippare il file ma si deve farlo con un certo metodo: prima creare il libro con il mimetype, poi caricare le directory META-INF e OEBPS.

Non é la prima volta che mi capita, quindi mi sono preparato uno script che lo faccia per me.

#!/usr/bin/sh
epub=$1

rm -rf $epub 2> /dev/null

zip -X  "${epub}" mimetype 
zip -rg "${epub}" META-INF -x *.DS_Store 
zip -rg "${epub}" OEBPS -x *.DS_Store 

Quindi lanciamo lo script e il libro sará pronto.

create_epub.sh "The Key, la Chiave - Joe Vitale.epub"

Note personali

Questo mi convince sempre piú che:

  • I formati aperti sono belli, con altri formati sarebbe stato impossibile.
  • Che é meglio acquistare libri senza cifratura DRM (AdobeDRM). Quelli che acquisto io sono sempre di tipo SocialDRM o Watermark. Viene aggiunta una pagina recante il codice di acquisto e la mia email, questo mi scoraggia dal condividere il file illegalmente ma mi da la possibilitá di gestirlo facilmente.
    Ancora meglio fruire di contenuti rilasciati in Creative Commons o alre licenze libere per condividere meglio il sapere, facendo una donazione all’autore quando il libro merita e ci é stato utile.
  • Essere nerd é bello!

Update 17.00

Quelli di BookRepublic mi hanno ringraziato per la segnalazione e anche dato un codice sconto!

Grazie! 🙂