Strona używa cookies (ciasteczek). Dowiedz się więcej o celu ich używania i zmianach ustawień. Korzystając ze strony wyrażasz zgodę na używanie cookies, zgodnie z aktualnymi ustawieniami przeglądarki.    X

Kindle i komiks - jednak sympatii nie będzie [Ubuntu/Debian tips]

W ostatni weekend przyszedł do mnie podłamany znajomy, który jest wielkim fanem komiksów. Kilka dni wcześniej zakupił sobie czytnik e-booków Kindle, na którym planował czytać kreskowane opowiastki. Wszystko byłoby kolorowo gdyby Kindle od Amazona radził sobie z formatem CBR (Comic book archive), a nie tylko z PDF.

Sam format CBR to nic innego jak archiwum RAR zawierające pliki obrazów w formacie PNG lub JPEG. Oprócz plików .cbr możemy także spotkać pliki .cbz (archiwum ZIP ), a także .cbt (TAR ).

No dobra - trochę teorii za nami ;)

r   e   k   l   a   m   a

Mając wiedzę, że to tylko archiwum możemy to z łatwością rozpakować i przekonwertować owe obrazki na pożądany portable document format. Do naszych zamiarów będziemy potrzebować kilku tooli.


  • pdftk - narzędzie umożliwiające modyfikację plików pdf.
  • sam2p - narzędzie umożliwiające konwertowanie rastrowych obrazów do formatu PDF
  • unzip - dekompresor archiwum zip
  • unrar - dekompresor archiwum rar

Aby je zainstalować w Ubuntu/Debianie musimy wykonać następujące polecenie:

sudo apt-get install pdftk sam2p unzip unrar

Gdy wszystkie narzędzia instalują się poprawnie możemy przystąpić do napisania skryptu, który przerobi nam nieszczęsnego .cbr'a.

#!/bin/bash

FILE_IN=$1 #plik cbr(z)(t) przeznaczony do konwersji
FILE_OUT="${1}.pdf"
#stworzenie losowej nazwy katalogu w /tmp/
DIR=`mktemp`;rm -fr $DIR;mkdir $DIR;

#rozpakowywujemy archwiwum
echo "rozpakowywujemy archwiwum komiksu... "
if file "$FILE_IN" | grep -iq rar; then
  unrar e -inul -y "$FILE_IN" $DIR
elif file "$FILE_IN" | grep -iq zip; then
  unzip -qq "$FILE_IN" -d $DIR
elif file "$FILE_IN" | grep -iq tar; then
  tar -xvf "$FILE_IN" $DIR
fi

#tworzymy pdfa
echo "tworzymy pdfa... "
#wyszukanie wszystkich plików z pożądanymi rozszerzeniami i posortowanie ich 
for i in `find $DIR | grep -i '\.jpg$\|\.bmp$\|\.png$\|\.tiff$' | sort`; do 
  sam2p -j:quiet -c:dct $i $DIR/`basename ${i%.jpg}.pdf`;
done

#połączenie pojedyńczych plików pdf do jednego.
echo "laczymy pdfy... "
pdftk $DIR/*.pdf cat output "$FILE_OUT"

Po uruchomieniu skryptu czekamy ile trzeba... trwać to może dosyć długo - zależy na jakim sprzęcie uruchomiliśmy konwersje i z ilu "stron" składał się komiks.

Mniej więcej tak to się prezentuje na Kindlu. Zdjęcie pobrane z Googla, albowiem nie zdążyłem machnąć fotki jak kumpel wychodził.

Dla mnie jakość nie jest za fajna - zależy też od komiksu, czy w oryginale był kolorowy, czy też czarno-biały. Zawsze można poeksperymentować z kontrastem JPEGów, co może zwiększyć zarys na czytnikach e-ink.  

linux sprzęt porady

Komentarze