Blog (452)
Komentarze (5k)
Recenzje (0)
@wojtekadamsKindle i komiks - jednak sympatii nie będzie [Ubuntu/Debian tips]

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

08.04.2013 17:32

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.

102867
102868

[join][img=3a]

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 ;)

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ł.

460991

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.

Wybrane dla Ciebie
Komentarze (9)