Teraz jest 21 lip 2019 23:54:51




Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ]  Przejdź na stronę 1, 2  Następna strona
embeddowanie fontów - kilka problemów 
Autor Wiadomość
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post embeddowanie fontów - kilka problemów
Witam wszystkich.

Próbuje od jakiegoś czasu załączyć polskie czcionki do pliku ePub. Stosowałem dwie metody - ręczną (kopiowanie czcionki, wpisywanie @font-face do css'a, edycja content.odf itd), oraz automatyczną, za pomocą pluginu do Calibre. Efekty, jakie otrzymuje dalekie są od oczekiwanych. Tzn. Jestem w stanie doprowadzić plik ePub do wyświetlenia np. Georgii, albo fontów z rodziny Liberation, ale pokazują się one bez polskich "ogonków" (ą, ę, ś, ć itd.). Nie udało mi się znaleźć rozwiązania tego problemu na form mobilereads, będę bardzo wdzięczny za pomoc.

Acha, plugin do Calibre u mnie nie działa. Dostaje taki komunikat w logu:

Kod:
Running file type plugin EPUB Font embedding plugin failed with traceback:
Traceback (most recent call last):
  File "site-packages\calibre\customize\ui.py", line 148, in _run_filetype_plugins
  File "calibre_plugins.dummy1.__init__", line 56, in run
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
EPUB output written to c:\users\milmaa\appdata\local\temp\calibre_0.8.18_tmp__absp6\jv4c2r.epub


16 wrz 2011 18:33:14
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
A jak wygląda kod Twojego CSSa, który jest dołączany przez Calibre?

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 18:42:22
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Z css'em trochę eksperymentowałem :-)

Standardowo, po konwersji, wygląda tak:
Kod:
@namespace h "http://www.w3.org/1999/xhtml";
.calibre {
    display: block;
    font-family: "Liberation", sans-serif;
    font-size: 1em;
    margin-bottom: 0;
    margin-left: 5pt;
    margin-right: 5pt;
    margin-top: 0;
    padding-left: 0;
    padding-right: 0;
    text-align: justify
    }
.calibre1 {
    height: auto;
    width: auto
    }
.calibre2 {
    display: block;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em
    }
.calibre3 {
    font-weight: bolder
    }
.calibre4 {
    display: block;
    font-size: 1.66667em;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 0.83em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0.83em
    }
.calibre5 {
    font-weight: bolder;
    line-height: 1.2
    }
.calibre6 {
    font-style: italic
    }
.calibre7 {
    color: blue;
    cursor: pointer;
    text-decoration: underline
    }
.calibre8 {
    display: block;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em;
    text-align: center
    }
.calibre9 {
    font-style: italic;
    line-height: 1.2
    }
.sigilNotInTOC {
    display: block;
    font-size: 1.29167em;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em
    }


Jak robię konwersje ręcznie, "doklejam" @font-face na początek css'a (przykład z innego pliku):
Kod:
@namespace h "http://www.w3.org/1999/xhtml";
@font-face {
font-family: "Georgia";
font-weight: normal;
font-style: normal;
src: url(georgia.ttf);
}
@font-face {
font-family: "Georgia";
font-weight: bold;
font-style: normal;
src: url(georgiab.ttf);
}
@font-face {
font-family: "Georgia";
font-weight: normal;
font-style: italic;
src: url(georgiai.ttf);
}
@font-face {
font-family: "Georgia";
font-weight: bold;
font-style: italic;
src: url(georgiaz.ttf);
}
body {
font-family: "Georgia", serif;
}
.calibre {
    display: block;
    font-family: "Georgia", serif;
    font-size: 1em;
    margin-bottom: 0;
    margin-left: 5pt;
    margin-right: 5pt;
    margin-top: 0;
    padding-left: 0;
    padding-right: 0;
    text-align: justify
    }
.calibre1 {
    height: auto;
    width: auto
    }
.calibre2 {
    display: block;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em
    }
.calibre3 {
    font-weight: bolder
    }
.calibre4 {
    display: block;
    font-size: 1.66667em;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 0.83em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 0.83em
    }
.calibre5 {
    font-weight: bolder;
    line-height: 1.2
    }
.calibre6 {
    font-style: italic
    }
.calibre7 {
    color: blue;
    cursor: pointer;
    text-decoration: underline
    }
.calibre8 {
    display: block;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em;
    text-align: center
    }
.calibre9 {
    font-style: italic;
    line-height: 1.2
    }
.sigilNotInTOC {
    display: block;
    font-size: 1.29167em;
    font-weight: bold;
    line-height: 1.2;
    margin-bottom: 1em;
    margin-left: 0;
    margin-right: 0;
    margin-top: 1em
    }


16 wrz 2011 18:53:18
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
Zupełnie nie o to pytałem. AFAIK, EPUB font embedding plugin dokleja fonty na podstawie dodatkowego stylizowania CSSem, które jest ustawiane w preferencjach Calibre - jaki tam masz własny kod, odpowiedzialny za dołączanie fontów?

EDIT: O, mój post z instrukcją: post77087.html#p77087

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 18:58:57
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Sorry, źle Cię zrozumiałem.

W preferencjach Calibre mam:
Kod:
body {font-family: "Liberation", sans-serif;}


16 wrz 2011 18:59:42
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
A w folderze {C:\Program Files}\Calibre2\resources\fonts\liberation masz fonta, który nazywa się Liberation? Bo u mnie jest jedynie LiberationMono i używany przeze mnie (i opisywany w mojej instrukcji, link wcześniej) LiberationSerif. Plugin dodaje fonty na podstawie nazwy, więc to może być przyczyną.

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 19:03:45
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Czytałem Twoją instrukcję. W moim wypadku efektem takiej konwersji jest ePub z czcionką Liberation, ale bez polskich znaków.


16 wrz 2011 19:08:56
Zobacz profil
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Mam komplet czcionek w tym katalogu.


16 wrz 2011 19:10:11
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
Mógłbyś wziąć TXT Psa Baskervillów, skonwertować do na ePUB, a potem wrzucić gdzieś w Sieć i podlinkować tutaj? Z chęcią popatrzyłbym na plik, skoro twierdzisz, że fonty dołączają się poprawnie.

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 19:16:47
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Bardzo proszę. Plik na moim PRSie ma Liberation, nie ma polskich znaków:
Kod:
http://www.mediafire.com/?27bfr1oyj2tnkht


16 wrz 2011 19:22:50
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
Ten plik nie ma w sobie fonta (tym razem, jak widzę, wybrałeś LiberationSerif). W takim razie - prośba o screen z katalogu {C:\Program Files}\Calibre2\resources\fonts\liberation. Dalej - czy plugin EPUB font embedding jest załączony? Ciągle pluje błędami?

EDIT: Dla porównania - mój plik, również konwertowany z TXT: http://www.mediafire.com/?5je7pcao26j4nbg -- zmień rozszerzenie na ZIP i zobacz różnice:
1.) dołączone pliki z fontami;
2.) zdefiniowany @font-face na początku CSSa.

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 19:27:35
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Jest załączony.Błąd wypluł taki sam jak poprzednio.

Zrzut ekranu:
Kod:
http://www.mediafire.com/i/?8e6vb0w0iu7q32f


16 wrz 2011 19:31:48
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
Ok, wygląda więc, że masz trzy Liberationy do wyboru: LiberationMono, LiberationSerif i LiberationSans (więc tylko takich nazw powinieneś używać w polu do dodatkowej stylizacji).

Spróbuj pobrać ponownie plugin i dodać do Calibre - może coś z tą kopią jest nie tak. Jeśli to dla Ciebie nie problem - wrzuć mój kod CSS z tamtego poradnika - żebyśmy byli pewni, że to nie literówka czy kwestia wielkiej litery gdzieś.

EDIT: O, już wiem. Czytanie kodu nie boli.

A więc tak - w pluginie mamy:
Kod:
    ss = inf.read('stylesheet.css')   
    s = ss.find('font-family:')
    e = ss.find('\n', s)
    fontFamilyName = ss[s:e].replace("font-family: \"","").replace("\";","");

Jak się nad tym zastanowić - to jest jasne, że Twój kod CSS był zły (tzn. zły dla pluginu). Po kolei:
- masz kod:
Kod:
body {font-family: "Liberation", sans-serif;}
;
- zgodnie z drugą i trzecią linijką plugin wybiera sobie ciąg: font-family: "Liberation", sans-serif;;
- zgodnie z czwartą linijką najpierw odcinamy font-family: ", a potem ";. Efekt po pierwszym: Liberation", sans-serif;, po drugim: Liberation", sans-serif;;
- potem biedny plugin usiłuje poszukać plików z taką nazwą (doklejając końcówki i parsując nazwę fonta) -- że ich nie może być to jasne.

Podsumowując: nie możesz definiować dwóch fontów jednocześnie w ten sposób - czyli definiujesz tylko jeden font, bez żadnego zapasowego, odpowiednio nazwany (np. LiberationSerif). Wtedy plugin powinien poradzić sobie z kodem bez problemów.

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 19:39:02
Zobacz profil WWW
Użytkownik

Dołączył(a): 16 wrz 2011 18:22:56
Posty: 9
eCzytnik: Sony PRS-350
Post Re: embeddowanie fontów - kilka problemów
Skopiowałem kod z Twojego poradnika i zainstalowałem wtyczkę po raz kolejny. Efekt niestety taki sam - calibre wypluło error w logu, ePub wygląda tak samo jak poprzedni.


16 wrz 2011 19:48:17
Zobacz profil
Admin
Avatar użytkownika

Dołączył(a): 11 lip 2007 19:38:54
Posty: 3265
Lokalizacja: Kraków
eCzytnik: eClicto, iPad, K3 WiFi, K4
Post Re: embeddowanie fontów - kilka problemów
Jesteś pewien, że na pewno masz poprawny kod CSS w Calibre ustawiony? Bo według mnie tu tkwi błąd, który Python zgłasza.

W takim razie ja poproszę kolejny screen - z ekranu Wygląd i zachowanie podczas konwersji pliku.

_________________
Cytuj:
Muad'Dib uczył się prędko, ponieważ najpierw przeszedł szkolenie jak się uczyć. A najpierwszą ze wszystkich otrzymał lekcję podstawowej wiary, że może się nauczyć. Szokuje odkrycie, jak wielu ludzi nie wierzy, że mogą się nauczyć, a o ile więcej uważa, że nauka jest trudna.


16 wrz 2011 19:53:09
Zobacz profil WWW
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 16 ]  Przejdź na stronę 1, 2  Następna strona


Kto przegląda forum

Użytkownicy przeglądający to forum: Brak zalogowanych użytkowników i 1 gość


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów

Skocz do: