|
Uzyskanie wydruku w linuksie czasami napotyka na wiele problemów nie mówiąc już o polskich literkach na wydrukach. Czasami cieszy fakt, że w ogóle coś
można wydrukować. W tym artykule nie będę opisywał instalacji drukarki bo to zależy od konkretnego sprzętu i dystrybucji jaką posiadamy oraz nie jest tematem tego artykułu.
Przypomnę tylko, że do instalacji drukarki w dystrybucji RedHat służy program printtool natomiast w SuSe, Yast.
Moja przykładowa konfiguracja to:
- Standardowa instalacja RedHat 6.2
- Drukarka EPSON STYLUS COLOR 400
- KDE 2.0
Sprzęt to jedna sprawa. Druga to odpowiednie oprogramowanie umożliwiające drukowanie. Moja drukarka nie posiada oprogramowania które umożliwia
drukowanie po polsku w " dosie ". Dlatego musimy posłużyć się oprogramowanie zewnętrznym. W linuksie służy do tego ghostscript. Redhat domyślnie
instaluje odpowiednie oprogramowanie. Ale aby się upewnić wydajemy w konsoli polecenie:
which ghostscript
Jeżeli otrzymamy w odpowiedzi /usr/bin/ghostscript to oznacza, że odpowiedni plik jest zainstalowany. W innym przypadku należy zainstalować pakiet
ghostscript-5.50-1.i386.rpm
ghostscript-fonts-5.50-1.i386.rpm
Ghostscript Fontmap
Ghostscript standardowo zainstalowany nie wie nic o naszych fontach truetype więc musimy poinformować go. Możemy zrobić to na dwa sposoby.
- Jeżeli mamy zainstalowany serwer fontów xfstt to przechodzimy do katalogu w którym mamy zainstalowane fonty truetype (domyślnie /usr/X11R6/lib/X11/fonts/TrueType w Redhat 6.2 )
i wydajemy polecenie:
xfstt --gslist --sync > Fontmap
Polecenie to utworzy plik Fontmap z nazwami fontów i ścieżkami do nich.
Teraz musimy skopiować zawartość tego pliku do pliku Fontmap ghostscripta w katalogu /usr/share/ghostscript/5.50/Fontmap.
Najlepiej na końcu pliku umieścić w komentarzu (znak % jest znakiem komentarza) informację o rodzaju fontów i poniżej wpisać informację o fontach. Przykład poniżej:
.......................
% Fonty Truetype
%
........................
(ComicSansMs) (//usr/X11R6/lib/X11/fonts/TrueType/comic.ttf) ;
(ComicSansMs-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/comicbd.ttf) ;
........................
To nie wszystko. Teraz ghostscript już wie o naszych fontach ale nie wszystkie potrafi rozpoznać. Te których nie rozpozna zastąpi własnymi co zniweczy nasz wysiłek.
Aby zapobiec temu musimy ręcznie poprawić nazwy plików na takie jakimi posługuje się ghostscript. Ale skąd mamy to wiedzieć? Najprościej to zrobić np. w Kword dokument o nazwie
test którego zawartością będzie przykładowy tekst z nazwami różnych fontów które chcemy używać. Następnie zapisanie tego pliku i
wydruk do pliku a nie na drukarkę. W wyniku otrzymamy plik postscriptowy który musimy podejrzeć w zwykłym edytorze. na początku zostaną wymienione poprawne
nazwy fontów których wymaga ghostscript. Przykład poniżej
........................
%%Pages: 1
%%DocumentFonts: Helvetica TrebuchetMs-Italic ComicSansMs-Bold Tahoma-BoldItalic Garamond-Regular BookAntiqua-Roman
%%EndComments
.......................
Jak widzimy do pojedynczych nazw fontów ghostscript dopisał -Roman, do pogrubionych -Bold, do pochylonych -Italic, do pogrubionych i pochylonych -BoldItalic.
Teraz musimy poprawić wszystkie niepoprawne nazwy na właściwe. Zapisujemy plik i po restarcie systemu możemy drukować.
Zobacz przykładowy wydruk
- Drugim sposobem jest ręczne poprawienie pliku Fontmap w katalogu ghostscripta. Przechodzimy do katalogu /usr/share/ghostscript/5.50 Otwieramy plik Fontmap i wpisujemy
najlepiej na końcu pliku nazwy fontów i ścieżki do nich. Pomiędzy nazwami i ścieżkami musi wystąpić pojedynczy biały znak np.spacja.
Dla ułatwienia poniżej zamieściłem poprawne wpisy do fontów które są zainstalowane w moim systemie. Oczywiście jest to tylko przykład który stanowi
podstawę do umieszczenia swoich wpisów i nie należy go bezmyślnie kopiować. Najpierw proszę sprawdzić czy zawartość katalogu z fontami jest taka sama i
wprowadzić poprawki. Dotyczy to zarówno nazw fontów jak i ścieżek do nich.
(AbadiMTCondensedLight-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/abalc.ttf) ;
(BookAntiquaBold-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/antquab.ttf) ;
(BookAntiquaBoldItalic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/antquabi.ttf) ;
(BookAntiquaItalic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/antquai.ttf) ;
(ArialBlack-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/ariblk.ttf) ;
(BookAntiqua-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/bkant.ttf) ;
(BookmanOldStyle-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/bookos.ttf) ;
(BookmanOldStyle-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/bookosb.ttf) ;
(BookmanOldStyle-BoldItalic) (//usr/X11R6/lib/X11/fonts/TrueType/bookosbi.ttf) ;
(BookmanOldStyleItalic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/bookosi.ttf) ;
(CalistoMt-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/calist.ttf) ;
(ComicSansMs-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/comic.ttf) ;
(ComicSansMs-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/comicbd.ttf) ;
(CopperplateGothic-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/coprgtb.ttf) ;
(CopperplateGothicLight-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/coprgtl.ttf) ;
(CourierNew-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/cour.ttf) ;
(CourierNew-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/courbd.ttf) ;
(CourierNew-BoldItalic) (//usr/X11R6/lib/X11/fonts/TrueType/courbi.ttf) ;
(CourierNewItalic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/couri.ttf) ;
(Garamond-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/gara.ttf) ;
(GaramondBold-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/garabd.ttf) ;
(GaramondItalic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/garait.ttf) ;
(CenturyGothic-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/gothic.ttf) ;
(CenturyGothic-Bold) (//usr/share/fonts/truetype/winfonts/gothicb.ttf) ;
(CenturyGothic-BoldItalic) (//usr/X11R6/lib/X11/fonts/TrueType/gothicbi.ttf) ;
(CenturyGothic-Italic) (//usr/X11R6/lib/X11/fonts/TrueType/gothici.ttf) ;
(Impact-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/impact.ttf) ;
(LucidaHandwriting-Italic) (//usr/X11R6/lib/X11/fonts/TrueType/lhandw.ttf) ;
(LucidaSans-Italic) (//usr/X11R6/lib/X11/fonts/TrueType/lsansi.ttf) ;
(LucidaSansUnicode-Roman ) (//usr/X11R6/lib/X11/fonts/TrueType/lsansuni.ttf) ;
(LucidaConsole-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/lucon.ttf) ;
(Marlett-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/marlett.ttf) ;
(Tahoma-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/tahoma.ttf) ;
(TahomaBold-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/tahomabd.ttf) ;
(Georgia-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/georgia.ttf) ;
(Georgia-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/georgiab.ttf) ;
(Georgia-Italic) (//usr/X11R6/lib/X11/fonts/TrueType/georgiai.ttf) ;
(Georgia-BoldItalic) (//usr/X11R6/lib/X11/fonts/TrueType/georgiaz.ttf) ;
(TrebuchetMs-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/trebuc.ttf) ;
(TrebuchetMs-Bold) (//usr/X11R6/lib/X11/fonts/TrueType/trebucbd.ttf) ;
(TrebuchetMs-BoldItalic) (//usr/X11R6/lib/X11/fonts/TrueType/trebucbi.ttf) ;
(TrebuchetMs-Italic) (//usr/X11R6/lib/X11/fonts/TrueType/trebucit.ttf) ;
(AndaleMono-Roman) (//usr/X11R6/lib/X11/fonts/TrueType/andalemo.ttf) ;
Jak ktoś nie chce ręcznie wpisywać tych wszyskich linijek, co może być również przyczyną błędów może pobrać mój przykładowy plik
Powyższe wpisy zawierają już poprawne ścieżki do fontów jak i nazwy stosowane przez ghostscript. Po restarcie drukowanie jest już możliwe.
To jest wydrukowana i zeskanowana strona testowa.
Problemy
Jak widać na powyższym obrazku drukowanie jest możliwe ale obarczone błędami których na razie nie rozwiązałem.
Mianowicie zamiast litery ż oraz Ż drukuje się kwadracik. nie występuje to przy wszyskich fontach ale tylko przy niektórych. Innym problemem jest to, że nawet
po wpisaniu poprawnych nazw i ścieżek fonty nie są rozpoznawane przez system jak i nie można ich drukować. Przykładem jest font Georgia który jest widoczny we
wszyskich okienkach służących do wyboru czcionki ale nie mogę z niego skożystać lub jest zastępowany czcionką systemową. Błędy te nie muszą wystąpić u innych.
Autor : Norbert Popiołek
Data 21.12.2000
[ DO GÓRY ] |