PRS-505: Čeština v každém EPUBu

Podpora formátu EPUB na čtečkách Sony má několik nepříjemných problémů – stabilitu, rychlost přechodu mezi kapitolami, nepřítomnost zarovnání do bloku atd., ale to všechno jsou jen prkotiny ve srovnání s podporou češtiny – neexistuje způsob, jak nahradit výchozí fonty Adobe Digital Editions svými vlastními fonty s podporou českých znaků. V průběhu minulého týdnu mě ale „z kontextu vytržená věta o existenci pověsti o řešení jiného problému“ (abych parafrázoval Dilberta) mě ale přivedla k tomu, že řešení existuje. Stále sice nelze nahradit výchozí fonty, ale existuje postup, jak dosáhnout skoro stejného efektu. Počtvrté se tedy vracím k tématu „čeština na PRS-505“ (z toho je vidět, jakou pozornost Sony podpoře exotických jazyků věnuje).

Čeho tedy lze dosáhnout? Podařilo se mi najít způsob, jak EPUB rendereru na Sony PRS-505 (a možná i dalších verzích, ale na těch to nemůžu vyzkoušet) vnutit uživatelsky definovatelný CSS předpis, který bude použit na vykreslování všech EPUB souborů. Tento předpis může obsahovat všechno možné, od výchozí velikosti písmen přes barvu a různé efekty (na e-inkových čtečkách zvlášť užitečná funkce ;-)) až po nastavení fontů, včetně použití fontů uživatelských. Postup, který dále popíšu, z větší části kopíruje starší návod na zprovoznění češtiny v EPUBu, ale s tím podstatným rozdílem, že celou operaci stačí udělat jen jednou a skoro všechny knihy by pak mělo jít použít bez nejmenších úprav. Než se ale pustím do samotného postupu, popíšu stručně princip úpravy – pro běhžné použití sice není potřeba, ale bude se hodit v budoucnu, až budou další verze firmware, případně pro úpravu dalších modelů čteček. Pokud vás tato část nezajímá, přeskočte ji.

Princip úpravy

Protože implementace EPUB na PRS-505 je tvořena jediným kompaktním souborem, nelze použít postup známý ze zprovoznění češtiny na formátech LRF, RTF a TXT a nahradit původní verze souborů verzemi novými. Lze ale využít jiné věci – EPUB je na Readeru vykreslován softwarem Adobe Digital Editions, který ve své desktopové verzi obsahuje podporu pro uživatelský CSS předpis (v adresáři ADE vytvořte adresář adobe\pxf a v něm vytvořte soubor userStyle.css). Nebylo by něco podobného i v čtečkovém ADE? Bylo. To samé. Ale jak už asi tušíte, je tam jedno ALE – nikdo neví, kde by se vlastně ten adresář adobe\pxf měl vytvořit; v tom nejpřirozenějším místě (adresář /opt/sony/ebook/application, kde je umístěno samo ADE) to není.

Naštěstí existuje cesta, jak celý problém obejít – ADE na čtečce je obyčejný linuxový spustitelný soubor bez jakékoliv ochrany, takže je možné ho vhodným editorem upravit. Postup je tedy poměrně přímočarý – nejdříve z čtečky vytáhnete originální soubor, následně v něm najdete a přepíšete cestu k userStyle.css a nakonec upravený soubor flashnete zpátky do čtečky:

  1. Získání originálního souboru. Postupů je několik, pravděpodobně by to šlo udělat mírnou úpravou Universal Flasheru, já jsem ale využil toho, že oficiální firmware v sobě obsahuje obrazy souborového systému čtečky, pro které existují vhodné nástroje. Najděte si image cramfs.Fsk.img a prográmkem cramfsck (6 KB) ho příkazem cramfsck -x firmware cramfs.Fsk.img rozbalte. Originální soubor Adobe Digital Editions pak je firmware/opt/sony/ebook/application/FskDocumentViewerAdobe.so.

  2. Úprava originálního souboru. Pro úpravu souboru FskDocumentViewerAdobe.so budete potřebovat binární editor. Já používám BIEW, pokud trváte na grafickém prostředí, oblíbený je WinHex. Ať už používáte jakýkoliv editor, otevřte si v něm soubor FskDocumentViewerAdobe.so a dejte hledat text userStyle.css. V případě PRS-505 s firmwarem verze 1.1.00.18040 se nachází na offsetu 6c4a6d (hexadecimálně) jako součást řetězce res:///adobe/pxf/userStyle.css. Tento řetězec přepište na res:///Data/epub/userStyle.css (přepsaná část je zvýrazněna; zdůrazňuji, že je třeba text přepsat přesně takhle – zejména musí zůstal zachována jeho délka).

  3. Flashnutí upraveného souboru. Bude popsáno v další části textu, protože jde o postup, který budou muset použít i běžní uživatelé, které principy této úpravy nezajímají.

Výsledkem celé operace je, že nyní máte pevně dané umístění uživatelského stylopisu Adobe Digital Editions – konkrétně jde o soubor epub/userStyle.css v interní paměti čtečky (to zařídila část res"///Data/). Tento stylopis můžete libovolně upravovat s tím, že ADE jeho obsah použije pro vykreslování všech knih ve formátu EPUB (s výjimkou knih, které si styly předefinují podle svého, ale i na to má CSS svoje nástroje – s tím bych vás ale odkázal na nějakou vhodnou dokumentaci CSS, kde si nastudujte modifikátor !important).

Instalace hacku

Připravil jsem pro vás soubor, ve kterém už jsou všechny kroky uvedené v kapitole „Princip úpravy“ provedené. Odkaz najdete na konci článku. Soubor si prosím stáhněte a rozbalte do libovolného adresáře. Další instalace pak může probíhat dvěma způsoby, podle toho, jestli to chcete rychle a jednoduše a nebo jestli chcete tento hack zkombinovat s hacky dalšími (například s úpravami PRS Customizeru nebo s PRS Plus).

Varianta 1

První varianta instalace je určena výhradně uživatelům, kteří používají PRS-505 s firmwarem verze 1.1.00.18040 a nebudou používat jiné hacky. Pokud tyto podmínky nesplňujete, musíte použít druhou variantu instalace. (Jediné oslabení slova „musíte“ je v případě, že splňujete všechno ostatní, ale používáte jinou verzi firmware – v tom případě lze tuto variantu použít, ale s tím, že váš firmware bude nahrazen verzí 1.1.00.18040.)

  1. Stáhněte si Universal Flasher a rozbalte ho do kořenového adresáře SD karty (musí to být SD karta a musí to být v kořenovém adresáři).

  2. Do kořenového adresáře SD karty zkopírujte soubor Image\new_opt.img z mého hacku.

  3. Vložte SD kartu do Readeru a nechte čtečku nastartovat.

  4. Objeví se menu Universal Flasheru, ve kterém vyberte napřed volbu 4: copy image from the card a bezprostředně potom volbu 6: flash the image.

  5. Až se čtečka zrestartuje, můžete všechny tyto soubory z SD karty smazat.

Varianta 2

Tato varianta je určena pro všechny, kdo nesplňují požadavky varianty 1.

  1. Stáhněte si PRS Customizer, spusťte ho a připravte si s jeho pomocí SD kartu s libovolnými úpravami, které se vám líbí.

  2. Pokud používáte jinou verzi firmware než 1.1.00.18040, přejmenujte v mém hacku adresář Files/files.505.1.1.00.18040 na název, který odpovídá verzi vašeho firmwaru.

  3. Do kořenového adresáře SD karty zkopírujte celý obsah adresáře Files z mého hacku.

  4. Vložte SD kartu do Readeru a nechte čtečku nastartovat.

  5. Objeví se menu Universal Flasheru, ve kterém vyberte napřed volbu 5: make a new image a bezprostředně potom volbu 6: flash the image.

  6. Až se čtečka zrestartuje, můžete všechny tyto soubory z SD karty smazat.

Použití v jiných modelech Readeru

Princip hacku by měl fungovat i v ostatních modelech Readeru. Budete muset postupovat podle popisu uvedeného v kapitole „Princip úpravy“ (nelze použít soubory, které jsem připravil) a hlavně budete muset vyřešit otázku, jak vlastně upravený soubor do čtečky dostat. Pokud vím, Universal Flasher (a tudíž i PRS Customizer, který ho používá) podporuje pouze modely PRS-505; jestli existuje jiný nástroj pro aktualizaci firmware nevím a jak zprovoznit Universal Flasher na novějších modelech také ne.

Odinstalace hacku

Pokud chcete hack zrušit, stačí ho přehrát oficiálním firmwarem, například podle návodu pro opravu zakousnuté čtečky.

Používání hacku

Po aplikaci hacku se při zobrazování knih ve formátu EPUB vždy načtou CSS pravidla ze souboru epub/userStyle.css (pozor na velká a malá písmena) v interní paměti vaší čtečky. Pro podporu češtiny v EPUBu tam budete chtít mít právě ta pravidla, která už jsem podrobně popsal v článku Čeština v EPUBu – až na to, že tam jste je museli umisťovat do každé knihy zvlášť, zatímco po aplikaci tohoto hacku je napíšete jen jednou a všechny EPUB knihy je použijí automaticky. Nebudu zde tedy znovu objevovat kolo a odkážu váš přímo na zmíněný článek.

Ukázkový soubor userStyle.css je uveden v adresáři Demo. Je už nastaven na české fonty, přičemž předpokládá použití fontů Times New Roman, Arial a Courier z českých Windows. Lze samozřejmě použít i libovolné jiné truetype fonty.

Download

Podobné příspěvky:

19 Responses to “PRS-505: Čeština v každém EPUBu”

  1. avatar pepak napsal:

    releo: Uznáváme naši chybu, ke článku už skutečně dlouho nebyl přidán žádný komentář. Přineste prosím na naše reklamační oddělení doklady o zaplacení služby „non-stop odpovědi u starých článků“ a poměrná část zaplacené částky vám bude obratem vrácena. Část takto získaných prostředků pak můžete použít např. na zaplacení služby „pozor při psaní“ a „blbuvzdorné psaní“.

    Jako sorry, ale nešlo by příspěvky psát trochu s rozumem, aby nevyzněly napůl jako urážka a napůl jako příkaz otrokovi? – K věci: Češtinu do PRS-T2 jsem neřešil, ale dá se očekávat, že to bude velmi podobné jako u PRS-T1, a ta je popsána v příslušném článku.

  2. avatar releo napsal:

    Zdravím Vás. Pokud ještě fungujete (poslední reakce 5.1.2010, prosím o pomoc s češtinou u Sony prst2. Pozor – jsem naprostý (skoro) laik, takže prosím pište BLBUVZDORNĚ.
    Díky.

  3. avatar pepak napsal:

    Nikdy nepřipravuju EPUB. Připravuju jeden HTML soubor společný všem výstupním formátům a ten pak jedním příkazem zkonvertuju do toho formátu, o který mi zrovna jde. Viz H2LRF: Hromadná konverze HTML.

    Další diskusi kdyžtak do diskusního fóra, prosím, tady by byla off-topic.

  4. avatar Rudla napsal:

    Nepridelaval jsem si praci, a pouzij tvuj navod i na verzi 1.0RC. Tedy zkopiroval jsem FskDocumentViewerAdobe.so pred flashem do prislusneho adresare na SD karte a po flashi a umisteni userStyle.css do adresare epub na ctecce vse opet funguje jak ma. Mam z toho radost – tak doufam, ze se dneska konecne vecer dostanu k editovani prvniho epubu v cestine.

    Kdyz pripravujes epub, editujes radeji jednotlive kapitoly do samostaneho souboru nebo radeji vse do jednoho html?

  5. avatar Rudla napsal:

    Popravde radeji pouziji tvuj navod s tim, ze stylopis budu umistovat do adresare epub/userStyle.css. Tvuj navod stale funguje i s novou verzi. Melo by stacit umistit FskDocumentViewerAdobe.so do adresare PRS Customizeru pred flashovanim.

    Hned po obede to rad vyzkousim …

    R.

  6. avatar pepak napsal:

    Čili jinými slovy jsi vůbec nepoužil PRS-Plus tak, jak je vytvořen, ale pomocí mého návodu pro zkombinování s PRS Customizerem. No tak v tom případě musíš použít také můj návod na hacknutí ADE – „Last, but not least, customizing epubs was integrated (path to custom css is: internal memory /database/system/PRSPlus/epub/style.css)“ se komplet celé týká jedině případu, že nainstaluješ PRS-Plus jako image. Pokud to neuděláš, tak nemáš ani hacknutý ADE, ani přesunutý a přejmenovaný userStyle.css.

    Pokud chceš mít stylopis v database/system/atd., musíš flashnout image PRS-Plus. Delší cestu nelze do hacku dostat, PRS Plus to dělá tak, že použije „falešné jméno“, které je ve skutečnosti odkazem někam jinam. Tzn. musel bys ručně vytvořit i symbolický odkaz, a to já neumím.

  7. avatar Rudla napsal:

    Ani jedno, ani druhe: pouzivam tebou napsany userStyle.css, ktery predtim fungoval. Provedl jsem reset firmwaru na original, pak jsem nahral prez PRS Customizer firmware upraveny, vcetne ceskych fontu a zmenene cesty v AplicationStartu pro PRS-Plus. PRS-Plus funguje krasne, cestina v LRF take jen ne v ePubu. Zkousel jsem obe dve lokace direktoraru (tvuj stary i novy popsany v PRS-Plus), ale ani tuk. Zlutoucky kun neni dostatecne zlutoucky 🙂

    Zarazi mne tahle veta: Last, but not least, customizing epubs was integrated (path to custom css is: internal memory /database/system/PRSPlus/epub/style.css)

    Vzhledem k tomu, ze pri instalaci nepouzivam jeho upraveny image, ale soubory ze scriptu jak pise tvuj navod, myslim si ze chyba bude nekde tam. A to, ze FskDocumentViewerAdobe.so neni soucasti instalace, a tak je dobre zmenit cestu na /database/system/PRSPlus/epub/style.css podle tveho navodu 2. Úprava originálního souboru a znovu preflashovat.

    Asi tak to bude, ze ano?

    R.

  8. avatar pepak napsal:

    V tom případě je ještě možnost, že máš ty styly napsané blbě. Začni něčím jednodušším, třeba
    html, body, p { font-style: italic; }
    – to by mělo většinu textů zobrazit v kurzívě.

  9. avatar Rudla napsal:

    Oboji jsem udelal – pouzil jsem ale nazev souboru style.css misto userStyle.css, protoze tak to je popsano v navodu na prs-plus.

    Vyzkousim a hned sdelim dojmy 🙂
    R.

  10. avatar pepak napsal:

    PRS Plus přesouvá a přejmenovává userStyle.css. Takže v první řadě musíš ten soubor příslušně přejmenovat a umístit. Za druhé, PRS Plus je rozdělený na dvě části (jednu, kterou musíš přeflashovat, a druhou, kterou jen přehraješ do interní paměti); aby ti fungoval userStyle.css, musíš udělat obě.

  11. avatar Rudla napsal:

    Ahoj,

    zkousel jsem, ale z nove lokace style.css mne to nefunguje. Musim flashovat originalni firmware a pak vse od zacatku? Ja jsem dle navodu na prs-plus smazal starou verzi, pak nahral verzi novou a v PRS Customizeru zmenil v AplicationStart.xml cestu k PRSPlus.js.

    R.

  12. avatar pepak napsal:

    Tento můj hack je nyní integrován v PRS-Plus.

  13. avatar pepak napsal:

    Principielně by to jít mělo, ale pokud vím, zatím to nikdo nevyzkoušel; pokud vím, Acomp zatím dělá jen „normální počeštění“ (české fonty pro LRF/RTF/TXT, čeština v menu – to, co umí PRS Customizer), ale už jsem jim nabízel, že bych zkusil tenhle postup zprovoznit i na PRS-600. Je tam potřeba vyřešit problém, že tam je firmware šifrovaný. Mám připravený postup, který by mohl zabrat, ale protože nemám PRS-600, nemůžu ho ani vyzkoušet, ani ho sepsat (nemá cenu psát něco, o čem nevím, jestli to vůbec bude fungovat).

  14. avatar Lavra napsal:

    Čau, přišla mi z USA čtečka sony PRS-600 touch edition tj. bez podpory českejch znaků. Chci se zeptat, jestli je možný tenhle návod aplikovat na ní? (Můj tip – ne, ale nevim) Nemáte už s ní někdo nějakou zkušenost? Na jinym fóru jsem se dočet, že to ACOMP počešťujou..

  15. avatar Rudla napsal:

    Vyřešeno 🙂

    Postupoval jsem dle tvého návodu bod po bodu, ale nedočkavostí nedočetl princip úpravy:

    Výsledkem celé operace je, že nyní máte pevně dané umístění uživatelského stylopisu Adobe Digital Editions – konkrétně jde o soubor epub/userStyle.css

    Direktorář a soubor mně tam chyběly … děkuju moc za tip.

    Jdu vyzkoušet poslední verzi PRS Plus a pak konvertovat DOC soubory do EPUBu.

    Hezké mezisvátky,
    R.

  16. avatar pepak napsal:

    Začni tím, že v epub/userStyle.css všechno smaž a dej tam, řekněme,
    body, p { font-style: italic !important; }
    Pak si zkus zobrazit nějaký EPUB. Pokud to máš dobře flashnuté, tak by se všechno mělo zobrazovat kurzívou; v tom případě můžeš začít řešit fonty. Jinak se ti buď nenahrál dobře hacknutý firmware, nebo se nahrál dobře, ale ty ten soubor userStyle.css dáváš na špatné místo a/nebo pod špatným jménem.

  17. avatar Rudla napsal:

    Ahoj,

    musim se priznat, ze asi neco delam spatne 🙁

    Pro jistotu jsem pouzil nejcistsi postup:

    1. Ctecku preflashoval originalnim firmwarem
    2. Pak pouzil PRC Customizer, kde jsem jako Font3 nahral font Gentium (mne pro zajimavost), a obsah SD adresare doplnil tvym souborem.
    3. Vytvoril podle tveho clanku Cestina v EPubu direktorar fonty (v clanku to mas tak, nevim jestli to je preklep, protoze v userStyles.css jsem nasel, ze pises direktorar /fonts; pro jistotu jsem vyzkousel oboji)
    4. Do nej pak nahral prislusne fonty z Windows
    5. Po flashi mne jde cestina velice hezky v souboru LRF (Gentium je opravdu dobry font), ale v EPUBu krome znaku Š a Ž ani tuk.

    Mohl bys mne prosim poradit, kde asi delam chybu?

    Dekuju moc,
    R.

  18. avatar pepak napsal:

    To se časem poddá – princip bude i u nich stejný, jediným problémem je dostupnost flashovacího softwaru. V podstatě stačí, aby Sony vydalo jakoukoliv aktualizaci firmware – přinejhorším se pak nahradí dodávaný image soubor upraveným a použije se standardní aktualizátor…

  19. avatar Jirka Vlček napsal:

    Jsi báječnej, díky za info! Jen je škoda, že novější modely Sony (a z dlouhodobějšího hlediska perspektivnější) tak snadno udělat nejdou.

Leave a Reply

Themocracy iconWordPress Themes

css.php