Расширение GraphicsMagick PHP не может отображать шрифты Google в SVG

На моем ноутбуке Ubuntu 14.04 установлено приложение GraphicsMagick и расширение PHP (GMagick). Когда я запускаю следующее из командной строки,

gm convert -font /usr/share/fonts/truetype/google-fonts/RockSalt.ttf svg_file.svg jpeg_file.jpg

отрисовывает JPEG со шрифтом по желанию. Тем не менее, этот код PHP

$gm = new Gmagick();
$draw = new GmagickDraw();
$draw->setfont("/usr/share/fonts/truetype/google-fonts/RockSalt.ttf");
$gm->readImageBlob($svg);
$gm->setImageFormat("jpeg");
$gm->drawimage($draw);
$gm->writeImage($jpgFile);
$gm->clear();

Не в состоянии сделать то же самое и создает JPEG с шрифтом по умолчанию. В чем может быть проблема здесь?

Это SVG:

<?xml version="1.0"?><svg xmlns="http://www.w3.org/2000/svg"    xmlns:svg="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="737" height="521"><defs/> <g class="main">  <title>Main</title>  <rect fill="#ffffff" stroke-width="0" x="27.24188" y="429.44421" width="682.51626" height="68.18413" id="svg_2" class="element" opacity="0.75" stroke="#000000"/>  <g text-anchor="start" font-family="Rock Salt" fill="#000" font-size="20" class="element textarea" id="svg_3">   <rect opacity="0"  stroke-width="0" x="27.24188" y="429.44421" width="682.51626" height="68.18413" id="svg_4"/>   <g class="textGroup">    <text class="eol" y="470.98331" x="44.46314" xml:space="preserve">Your&#xA0;memories&#xA0;will&#xA0;last&#xA0;forever</text>   </g>  </g> </g></svg>

2

Решение

Вам нужно отредактировать файл type.mkg в GraphicMagick, чтобы шрифт загрузился.
https://sourceforge.net/p/graphicsmagick/discussion/250738/thread/5c00e815/

Вот пример необходимого формата:
https://github.com/CliffsDover/graphicsmagick/blob/master/config/type-windows.mgk.in

<?xml version="1.0"?>
<typemap>
<type
name="Arial"fullname="Arial"family="Arial"weight="400"style="normal"stretch="normal"glyphs="@[email protected]"/>
<type
name="Arial-Black"fullname="Arial Black"family="Arial"weight="900"style="normal"stretch="normal"glyphs="@[email protected]"/>
<type
name="Arial-Bold"fullname="Arial Bold"family="Arial"weight="700"style="normal"stretch="normal"glyphs="@[email protected]"/>
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]