LINUX.ORG.RU

Graphviz не видит шрифтов на машине без X'ов


0

0

Приветствую! Пытаюсь прикрутить к своему web-серверу PlantUML, выяснилось, что при генерации диаграмм GraphViz'ом он не подхватвывает кириллические шрифты :(

Пример запуска: % dot -v -Tpng -o x.png dottmpfile2.tmp dot - graphviz version 2.26.3 (20100126.1600) Activated plugin library: libgvplugin_dot_layout.so.6 Using layout: dot:dot_layout Activated plugin library: libgvplugin_gd.so.6 Using render: gd:gd Using device: png:gd:gd The plugin configuration file: /usr/lib64/graphviz/config6 was successfully loaded. render : dot fig gd map ps svg tk vml vrml xdot layout : circo dot fdp neato nop nop1 nop2 osage patchwork twopi textlayout : device : canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp xdot loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg fontname: «Times-Roman» resolved to: [internal times] network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1 network simplex: 1 nodes 0 edges 0 iter 0.00 sec mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0 mincross unix: 0 crossings, 0.00 secs. network simplex: 1 nodes 0 edges maxiter=2147483647 balance=2 network simplex: 1 nodes 0 edges 0 iter 0.00 sec routesplines: 0 edges, 0 boxes 0.00 sec Using render: gd:gd Using device: png:gd:gd dot: allocating a 12K PaletteColor GD image (211 x 56 pixels)

Обратите внимание на строчку:

fontname: «Times-Roman» resolved to: [internal times]

Если явно указывать какой-то шрифт в dot-файле, то всё равно, используется или internal times, или internal courier, и, соответственно, русские буквы рендерятся в кракозябры.

Шрифты установлены: % eix "-I*" --only-names «media-fonts/» media-fonts/corefonts media-fonts/cronyx-fonts media-fonts/dejavu media-fonts/encodings media-fonts/font-alias media-fonts/font-bh-ttf media-fonts/font-bh-type1 media-fonts/font-misc-meltho media-fonts/font-misc-misc media-fonts/font-util media-fonts/freefonts media-fonts/gnu-gs-fonts-std media-fonts/intlfonts media-fonts/ttf-bitstream-vera media-fonts/unifont

fc-list их тоже видит: % fc-list |grep Times Times New Roman:style=Regular,Normal,oby#ejn,Standard,########,Normaali,Norml,Normale,Standaard,Normalny,#######,Normlne,Navadno,th##ng,Arrunta Times New Roman:style=Italic,cursiva,kurzva,kursiv,######,Kursivoitu,Italique,D#lt,Corsivo,Cursief,kursywa,Itlico,######,#talik,Po#evno,nghing,Etzana Times New Roman:style=Bold,Negreta,tu#n,fed,Fett,######,Negrita,Lihavoitu,Gras,Flkvr,Grassetto,Vet,Halvfet,Pogrubiona,Negrito,##########,Fet,Kal#n,Krepko,##m,Lodia Times New Roman:style=Bold Italic,Negreta cursiva,tu#n kurzva,fed kursiv,Fett Kursiv,###### ######,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Flkvr d#lt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itlico,########## ######,Tu#n kurzva,Fet Kursiv,Kal#n #talik,Krepko po#evno,nghing ##m,Lodi etzana

Запуск с DEFAULT_FONTPATH тоже не помогает.

Но если запускать ту же команду на машине с X-ами, то русские шрифты прекрасно рендерятся.

Уже и не знаю, в какую сторону копать, что фиксить? Подскажите, пожалуйста!

Ой, форматирование не указал. Повторяю:

Пример запуска:
<pre>
% dot -v -Tpng -o x.png dottmpfile2.tmp
dot - graphviz version 2.26.3 (20100126.1600)
Activated plugin library: libgvplugin_dot_layout.so.6
Using layout: dot:dot_layout
Activated plugin library: libgvplugin_gd.so.6
Using render: gd:gd
Using device: png:gd:gd
The plugin configuration file:
/usr/lib64/graphviz/config6
was successfully loaded.
render : dot fig gd map ps svg tk vml vrml xdot
layout : circo dot fdp neato nop nop1 nop2 osage patchwork twopi
textlayout :
device : canon cmap cmapx cmapx_np dot eps fig gd gd2 gif gv imap imap_np ismap jpe jpeg jpg plain plain-ext png ps ps2 svg svgz tk vml vmlz vrml wbmp xdot
loadimage : (lib) eps gd gd2 gif jpe jpeg jpg png ps svg
fontname: «Times-Roman» resolved to: [internal times]
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=1
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
mincross: pass 0 iter 0 trying 0 cur_cross 0 best_cross 0
mincross unix: 0 crossings, 0.00 secs.
network simplex: 1 nodes 0 edges maxiter=2147483647 balance=2
network simplex: 1 nodes 0 edges 0 iter 0.00 sec
routesplines: 0 edges, 0 boxes 0.00 sec
Using render: gd:gd
Using device: png:gd:gd
dot: allocating a 12K PaletteColor GD image (211 x 56 pixels)
</pre>

Обратите внимание на строчку:

fontname: «Times-Roman» resolved to: [internal times]


Если явно указывать какой-то шрифт в dot-файле, то всё равно, используется или internal times, или internal courier, и, соответственно, русские буквы рендерятся в кракозябры.

Шрифты установлены:
% eix "-I*" --only-names «media-fonts/»
media-fonts/corefonts
media-fonts/cronyx-fonts
media-fonts/dejavu
media-fonts/encodings
media-fonts/font-alias
media-fonts/font-bh-ttf
media-fonts/font-bh-type1
media-fonts/font-misc-meltho
media-fonts/font-misc-misc
media-fonts/font-util
media-fonts/freefonts
media-fonts/gnu-gs-fonts-std
media-fonts/intlfonts
media-fonts/ttf-bitstream-vera
media-fonts/unifont

fc-list их тоже видит:
% fc-list |grep Times
Times New Roman:style=Regular,Normal,oby#ejn,Standard,########,Normaali,Norml,Normale,Standaard,Normalny,#######,Normlne,Navadno,th##ng,Arrunta
Times New Roman:style=Italic,cursiva,kurzva,kursiv,######,Kursivoitu,Italique,D#lt,Corsivo,Cursief,kursywa,Itlico,######,#talik,Po#evno,nghing,Etzana
Times New Roman:style=Bold,Negreta,tu#n,fed,Fett,######,Negrita,Lihavoitu,Gras,Flkvr,Grassetto,Vet,Halvfet,Pogrubiona,Negrito,##########,Fet,Kal#n,Krepko,##m,Lodia
Times New Roman:style=Bold Italic,Negreta cursiva,tu#n kurzva,fed kursiv,Fett Kursiv,###### ######,Negrita Cursiva,Lihavoitu Kursivoi,Gras Italique,Flkvr d#lt,Grassetto Corsivo,Vet Cursief,Halvfet Kursiv,Pogrubiona kursywa,Negrito Itlico,########## ######,Tu#n kurzva,Fet Kursiv,Kal#n #talik,Krepko po#evno,nghing ##m,Lodi etzana

Запуск с DEFAULT_FONTPATH тоже не помогает.

Но если запускать ту же команду на машине с X-ами, то русские шрифты прекрасно рендерятся.

Уже и не знаю, в какую сторону копать, что фиксить? Подскажите,

malphunction ()

Пофиксил путём пересборки graphviz с +cairo, всё стало, как надо.

malphunction ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.