Текст в формате SVG в PNG отображается неправильно - шрифт Arial
У меня проблема с преобразованным PNG с использованием Apache Batik, когда есть текст с другим семейством шрифтов, такой как Arial. Эта проблема возникает в среде, где Cent OS 6 работает с Tomcat 7 и Java 6.
Java-код, используемый для преобразования SVG в PNG:
// Convert the SVG image to png and send back
PNGTranscoder transcoder = new PNGTranscoder();
//
TranscoderInput input = new TranscoderInput(new ByteArrayInputStream(svgImage));
outStream = new ByteArrayOutputStream();
TranscoderOutput output = new TranscoderOutput(outStream);
// Transcode the given SVG
transcoder.transcode(input, output);
outStream.flush();
pngImage = outStream.toByteArray();
Файл SVG, который я собираюсь преобразовать в PNG:
This is a test text for testing text overlapping in the rectangle when convert the svg to PNG using SVG-Batik
Когда я открываю файл SVG в браузере Firefox, он отображается правильно, как показано на рисунке ниже:
Но когда я конвертирую SVG с помощью Apache Batik, преобразованное изображение выглядит иначе. Apache Batik преобразовал PNG:
В Windows 7 под управлением Tomcat 7 и Java 7 сгенерированный образ идентичен исходному SVG.
Поскольку сервер Cent OS предоставляет изображение в виде текста, я считаю, что шрифт Arial недоступен для приложения tomcat / java, и его необходимо загрузить вручную. Если это так, я предпочитаю посоветовать загружать их обычным способом из расположения базовой ОС (расположения шрифтов ОС) без каких-либо изменений в файле SVG.