skip to main | skip to sidebar
11 commenti

Kindle Previewer su OS X El Capitan non funziona? Risolto

Questo articolo vi arriva gratuitamente e senza pubblicità grazie alle donazioni dei lettori. Se vi piace, potete incoraggiarmi a scrivere ancora (anche con un microabbonamento).

Amazon offre un software gratuito di conversione da EPUB a MOBI, Kindle Previewer, che fa tutto in automatico, verifica la conformità con gli standard di Kindle e offre l’anteprima in emulazione di vari dispositivi Kindle. Molto comodo, ma ha il difetto non trascurabile (perlomeno nella versione corrente, la 2.94) di non funzionare assolutamente sotto OS X El Capitan perché Amazon ha sbagliato la sua configurazione.

Ho speso un bel po’ di tempo oggi a cercare la soluzione a questo problema, per cui la pubblico qui, caso mai servisse a qualcun altro.

Per prima cosa occorre installare Java, se non è già installato, e anche X11 (XQuartz). Occorre riavviare OS X. Poi si installa Kindle Previewer.

Terminate queste installazioni, si va nella cartella Applications, si fa clic destro su Kindle Previewer.app, si sceglie Show Package Contents e si apre con un editor di testo (TextEdit va benissimo) il file Contents/MacOS/Launcher all’interno del pacchetto dell’applicazione.

Questo file va modificato in modo che punti al path corretto di Java. Questa è la mia versione, con le righe aggiunte/modificate in grassetto:

#!/bin/sh

dir=`dirname "$0"`
cd "$dir"
classpath=./:./lib/touchLibs/etc/fonts/fonts

for i in `ls ./lib`
do
    classpath=$classpath:./lib/$i
done

export DYLD_LIBRARY_PATH=.

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6*)

# start the previewer
fileExtT=`echo $1 | awk -F. '{print $NF}'`
fileExt=`echo $fileExtT | tr '[:upper:]' '[:lower:]'`

if [ "$fileExt" == mobi -o "$fileExt" == azw3 -o "$fileExt" == epub -o "$fileExt" == opf -o  "$fileExt" == html -o  "$fileExt" == zip ]
then
    # opens only the first book in command line.  TODO: handle multiple books in command line
    ${JAVA_HOME}/bin/java -d32 -XstartOnFirstThread -Dfile.encoding=UTF-8 -cp "${classpath}"  com.amazon.epub.reader.Main "$1"
    exit 1
else
    ${JAVA_HOME}/bin/java -d32 -XstartOnFirstThread -Dfile.encoding=UTF-8 -cp "${classpath}"  com.amazon.epub.reader.Main
    exit 1
fi

Si salva questo file e si lancia Kindle Previewer: se è tutto giusto, parte l’applicazione (non vi preoccupate se l’icona nel Dock scompare dopo l’avvio; ricompare poco dopo), sulla quale si può trascinare il file EPUB da convertire (si può anche scegliere l’interfaccia in italiano).

Se il file EPUB viene convertito correttamente perché non contiene errori di sintassi o incompatibilità, si ottiene un’anteprima grafica dell’aspetto che avrà l’e-book sui vari dispositivi: Kindle Fire, DX, Kindle per iPhone e iPad. Ta-da!
Invia un commento
I commenti non appaiono subito, devono essere tutti approvati da un moderatore. Lo so, è scomodo, ma è necessario per tenere lontani scocciatori, spammer, troll e stupidi: siate civili e verrete pubblicati qualunque sia la vostra opinione; gli incivili di qualsiasi orientamento non verranno pubblicati, se non per mostrare il loro squallore.
Inviando un commento date il vostro consenso alla sua pubblicazione, qui o altrove.
Maggiori informazioni riguardanti regole e utilizzo dei commenti sono reperibili nella sezione apposita.
NOTA BENE. L'area sottostante per l'invio dei commenti non è contenuta in questa pagina ma è un iframe, cioè una finestra su una pagina di Blogger esterna a questo blog. Ciò significa che dovete assicurarvi che non venga bloccata da estensioni del vostro browser (tipo quelle che eliminano le pubblicità) e/o da altri programmi di protezione antimalware (tipo Kaspersky). Inoltre è necessario che sia permesso accettare i cookie da terze parti (informativa sulla privacy a riguardo).
Commenti
Commenti (11)
oppure: usare Calibre http://calibre-ebook.com/
Complimenti, soluzione elegante. Certo più della mia, che ho dato alcuni libri in pasto a Calibre, software di conversione multipiattaforma.
Comodo ma ingombrante.
C'è calibre che è tanto comodo...
Sconsiglio VIVAMENTE di seguire queste istruzioni, riinstallare X11 su un sistema pulito equivale a cercarsi guai seri, decine di librerie, script e file di configurazione vengono modificati per X11, che non è più supportato da Apple stessa.
Ciskje,

premesso che già il fatto di installare Java è un problema di sicurezza sul quale concordo e che quindi non propongo a cuor leggero, mi diresti quali sono i guai seri di cui parli a proposito di X11?
Ciskje,

io ho installato manualmente X11 da quando Apple non lo ha più supportato nativamente, cioé da OS X 10.8, per far girare applicazioni come Inkscape o Gimp, anche se ora quest'ultima non ne ha più bisogno, e non mi ha mai dato nessun tipo di problema.
Non so se disponibile per Apple, ma al posto di Oracle java si può installare OpenJDK, scelto anche da Android nel suo prossimo aggiornamento.
[quote]con le righe aggiunte/modificate in grassetto:[/quote]

Per la prossima volta ti consiglio di utilizzare la sintassi standard di diff, che permette di lasciare le cancellature rendendo meglio il confronto tra codice vecchio e nuovo.

Es. se si modifica "pippo='pappo'" in "pippo='pluto'" il diff sarà:

- pippo='pappo'
+ pippo='pluto'

Con il "-" si indicano le righe cancellate e con "+" quelle aggiunte.

[quote]mi diresti quali sono i guai seri di cui parli a proposito di X11[/quote]

Penso si riferisca all'enorme quantità di dipendenze che ti porti dietro.
X11 è un server grafico completo, e di solito avere due server grafici completi installati porta ad inevitabili conflitti di dipendenze se non addirittura in fase di avvio.

Non so però come il mac gestisca le dipendenze e se disinstalli automaticamente l'ambiente di default o riesca a farli convivere forzatamente.
Interessante il fatto che l'X11 di Apple non abbia un file di configurazione centralizzato... o quantomeno non abbia un modo di memorizzare le variabili d'ambiente.

Ma di sicuro c'è, ed è molto meglio fare modifiche lì.
Amazon offre anche KindleGen per convertire i libri da epub. C'è per Windows Mac e Linux e soprattutto non richiede Java.

https://www.amazon.com/gp/feature.html?docId=1000765211
"Non so però come il mac gestisca le dipendenze e se disinstalli automaticamente l'ambiente di default o riesca a farli convivere forzatamente."

X è un sistema client/server e in generale i server possono coesistere senza il minimo problema. Non è esattamente la stessa cosa, ma puoi fare praticamente lo stesso con cygwin sotto Windows. Non è un dual boot, per capirci, coi sistemi operativi che funzionano alternativamente.

Infatti, se vuoi usare X11 devi lanciarlo (ti mette una icona nel dock) e poi caricare il programma che lo usa. Chiudi X11, si chiude anche il programma che lo usa. L'integrazione è trasparente, l'utente non si accorge di alcuna differenza. E' come aprire una sessione su un X remoto. Essendo una implementazione diversa da x.org non è detto che i programmi funzionino tutti o non richiedano librerie particolari o modifiche, ma questo capita anche su altri server X.