Проблемы с GraphicsMagick и шрифтами в SVG - PullRequest
1 голос
/ 13 апреля 2019

У меня есть svg-изображение, и мне нужно отобразить его в png с пользовательскими шрифтами, установленными на сервере.

Вот SVG-файл:

<?xml version="1.0" standalone="no"?> 
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"> 
<svg width="850mm" height="300mm" version="1.1" xmlns="http://www.w3.org/2000/svg"> 
<rect width="100%" height="100%" fill="#ffffff"/> 
<g fill="none" stroke="#000000" stroke-width="7mm"> 
    <line x1="0mm" y1="0mm" x2="850mm" y2="0mm" /> 
    <line x1="0mm" y1="0mm" x2="0mm" y2="300mm" /> 
    <line x1="850mm" y1="0mm" x2="850mm" y2="300mm" /> 
    <line x1="0mm" y1="300mm" x2="850mm" y2="300mm" /> 
</g> 
<text class="text" x="100mm" y="185mm" font-family="Fibel Nord" font-size="138" fill="#333333"> Frosch </text> 
<text class="text" x="550mm" y="185mm" font-family="Helvetica" font-size="138" fill="#333333"> Quark </text> 
<image x="0mm" y="126.5mm" width="47mm" height="47mm" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAvCAYAAABzJ5OsAAAAAklEQVR4AewaftIAAATqSURBVNXBTWhTBwDA8X/6Xr76MVcJBbEHPbnhwM4VPYh4KELZLKPWpouNLl3THvSiYyAyKG8HkdFtdVtHGXNlIOjBi3jTU9raNsWKYhEb0XZLWb5Mk7R97yVpk7y9wQ4im+tHkqa/n2Cz2SKqqpqBUUBjCykbHBzcXltb+4Uoig+Ad9hChOvXr3/lcrksT548sc7Pz59KJpNmYAzQKHGCpLNarTgcDsvu3bvNY2Nj9Yqi2DVNGwKilDBB0vGPvXv3ljmdTsujR48s8Xi8PZVKmYBxQKMECZKOV1RUVOB0Oi07d+40e73eekVRWoFhIEqJESQdrzEYDOzbt09wOBzW+/fvWxYWFhypVMoEjAMaJUKQdPyHqqoqXC6X1WazmScnJ+tlWT4BjABRSoAg6XgDg8HA/v37xdbW1nKv12tdWlpqS6fTJsALaGwiQdKxCtu2baOzs9NaWVlpevjwYb0syy3APSDKJhEkHatkMBg4ePCg8fjx4xWjo6NWRVFa0+m0GfACGkUmSDrWqLq6GrfbbTUajaapqakPZFluAe4BUYpIkHSsg8Fg4NChQ8ampqbKoaGhclVVW5aXl83ABKBRBIKkYwNsNhtdXV3WXC5nfPr06fuKorQAo0CUAhMkHRtUVlbGkSNHTI2NjVUej8eaTCabV1ZWLMAEoFEggqQjT2pqauju7i5PJpPGZ8+e1SmK0gKMAlEKQJB05JEgCDQ0NJgbGhre8ng85aqqfpzJZKzABKCRR4KkowB27NhBd3d3eSKRMM7MzLynKMoJYAyIkieCpKNARFGksbHRfPjw4beHhoasqqo2ZTKZcmAC0NggQdJRYLW1tbjd7vJwOGycm5t7V1GUVmAMiLIBgqSjCIxGI8eOHbMcOHCg2uPxWFVV/SibzZYDE4DGOgiSjiLatWuXwe12V/j9flMwGNyjKIodGAeirJEg6Sgyk8lEc3Ozpa6ubvvw8LBVVdUPc7lcBTABaKxSGZvo6NGjZSMjIzVms3kP4AI+Zw1ENtHdu3dzXV1dL1Op1EvgN+AKayCyCWRZ5syZM/E7d+5E/gZ0AT7WSKTIPB6P1tHREQ0EAi+Xl5cHgStAlnUQKRJVVTl//nzi1q1b85FIJAi4AR8bIFIEXq+X9vb2aCAQiKZSqV+BPiDLBokUUDqd5sKFC4s3btyIRSKRP4FOwEeeiBTIgwcPOHny5Pzc3Nx8Mpn8BegDsuSRSJ6trKzQ09OzNDg4mIhEInPAZ4CPAhDJo6mpKdra2ub9fn9cUZSfgT4gS4GI5EEmk+HSpUvywMDAYjgc/gPoAHwUmMgGTU9PY7fbY7OzswlZlgeAPiBLEYisUy6Xo7e3V+nr65PD4fAs4AJ8FJHIOrx48QK73R57/vz50uLi4k/Ad0CWIhNZg1wuR39/f/Ly5ctyKBSaAT4FfGwSkVXy+/3Y7fb49PS0vLCw0A98C2TZRCL/Q9M0rl69mu7p6ZFDodAMcArwUQJE3iAQCOBwOOKPHz9WE4nEj8A3QJYSIfIvNE3j2rVryxcvXpSDweCspmntgI8SI/KaSCSC0+lMTE5OJuPx+A9AL5ClBIm84ubNmyvnzp1TQqHQbC6XcwA+SpiILhaLcfr06cT4+PhyLBb7HvgayFLixNu3b2fOnj2rBIPB37PZ7CeAj63CZrNFgC8BgS3mL3mFSWNtVKWxAAAAAElFTkSuQmCC" /> 
<image x="803mm" y="126.5mm" width="47mm" height="47mm" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC8AAAAvCAYAAABzJ5OsAAAAAklEQVR4AewaftIAAASLSURBVNXBS0zTdwDA8e+vv77+pVAo5d/S0AZURh2MGaLRVIQxnlcPXozZIyzL5piLZVscNz3pRU96wUeVYrGo0bCNjA0S0wmZMTHRmHgwxpgQE2N9BP4RhPa/iwdjouHRF5+PYO2RwG8ul2ufYG0JGI3GIY/HU3nixAm7YG2QwIHS0tJ9wWDQEg6HHU6nE0H+CxgMhmh5eXnlsWPH7Lt27TLyhiB/SeDXkpKSHzdv3qxEIpFiVVV5myA/BYQQgx6Pp/LIkSP2PXv2mIUQvEuQXyTwS3FxcU99fb0tGo2WeL1e3keQPwLAQHl5edWhQ4fs3d3dFiEEHyLIPQn87HA4fti4caP9woULJX6/n6UQ5FYAOOvxeKr6+vrsPT09ihCCpRLkhgR6i4qKvq+uri6KxWLOdevWsVyC7AsAYY/HUxkKhQp7e3ttBoOBlRBkjwRCdrv9u6qqquLh4WFnTU0NqyHIjgBwxu12+/fu3VvU19dnNxqNrJYgsyQQKigo+Nbv95fEYrHSuro60kWQOQHgtKqqvu7ubsfBgwcLTSYT6SRIPwmEFEX5xufzlUaj0dKGhgYyQZBeAeCUqqre3bt3Ow8fPlxksVjIFEF6SCBktVq/rqioKBsYGHBt27aNTBOsXgA4qaqqe+fOna6jR48W22w2skGwchLYbzabv/J6vWo4HHY1NzcLskiwMgGgX1XVsq6uLvfx48eL7XY72SZYHgnsN5lMX3i9Xnd/f7+rvb3dQI4YWZ4Q8KXFYqmOx+Nmn89HLkmW5z/AmkqlfMPDw3ptba1t/fr1ghyRLI8OTKVSqYmXL19uHxsbm79z545sb29XzGYz2SZZmQRwTtM0871796ojkQibNm2yVVZWCrJIsnI6MJVMJsdfvHixfXR0dPH+/fuG1tZWq8lkIhskq5cAzmmaZrp79+5HkUiErVu32ioqKsg0SXrowOTi4uI/z58/3z4yMpKanp42tLS0WIxGI5kiSa8EcFbTNHn79u2a8+fPEwwGbV6vl0yQpJ8OTC4uLv6dSCQar1y5wrNnzwzNzc0WKSXpJMmcBHBW0zTDrVu3AtFoVG9qarK53W7SRZJZOjC5sLAw9vTp0x2XL1+WmqaJxsZGs8FgYLUk2ZEAwpqmcfPmzY9jsZje0tKiuFwuVkOSPTow+fr167+ePHmy4+LFi6ZkMimCwaBZCMFKSLIvAYQ1TePGjRt1ly5dSrW1tSlOp5PlkuSGDkzOz8+PPn78uCkWi1nMZrNhy5YtJiEESyXJrQRwZnZ2lqmpqbqrV6+mOjo6FIfDwVJIck8Hrs/Pz/85PT392dDQkNXhcMiGhgajEIIPkeSPBHB6dnaWeDz+yejoaLKzs1MpLCzkfST5RQeuz83N/fHo0aPPo9GotaysTNbX10shBO+S5KcEcGpmZoZr167VT0xMJDs7O60FBQW8TZK/dODfubm53x8+fNg6ODio+P1+WVtbK3lDkv8Suq6fnJmZEePj45/G4/GFrq4uq6IoSNYGHYi/evVq5MGDB22RSETZsGGDUbD2SOCAy+X66X/Nu2HsnktehwAAAABJRU5ErkJggg==" />
</svg>

Я отрисовываю его с помощью "convert", и все шрифты хорошо прорисованы: enter image description here

Изображения не включены .... хорошо, это всего лишь тест, потому что я хочу использовать GraphicsMagick позже.

Я тестирую нижележащий rsvg-convert и получаю тот же результат, что и с convert: enter image description here

Опять же, шрифты хорошие, встроенные изображения отсутствуют.

Наконец, давайте попробуем это с GraphicsMagick: enter image description here

WOW, встроенные изображения включены. Но шрифт сломан!

Как я могу исправить шрифт в GraphicsMagick? Я потерян. Придерживаться этой ошибки с незапамятных времен.

Пока я создаю карту типов:

perl /opt/imagick_type_gen.pl > /root/.magick/type.xml

и свяжите это с /usr/lib/GraphicsMagick-1.4/config/type.mgk

<?xml version="1.0"?>
<typemap>
   <include file="type-ghostscript.mgk" />
   <include file="/root/.magick/type.xml" />
</typemap>

но с тех пор, как gm convert -list type выдает ошибку:

gm convert: Unable to access configuration file (type.xml) [No such file or directory].

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 13 апреля 2019

Я запустил карту в /usr/lib/GraphicsMagick-1.4/config и связал файл в этой папке.

perl /opt/imagick_type_gen.pl > ./my.mgk

и к нему без путей:

   <typemap>
       <include file="type-ghostscript.mgk" />
       <include file="my.mgk" />
   </typemap>

теперь это работает!

...