我正在使用Batik将svg转换为pdf。 Batik输出的pdf没有文字。 svg确实有文字。如果我使用Batik栅格化为png,我会得到文本。
我使用的字体是Arial。我在debian盒子里。 Arial已安装。这是我正在使用的命令:
/usr/bin/java -jar /usr/local/share/java/batik-1.7/batik-rasterizer.jar \
-m application/pdf -bg 255.255.255.255 -d /tmp/olV0zQ_wYQ/chart.pdf \
/tmp/tAi25KAE2z/tmp.svg
然后我得到以下输出:
About to transcode 1 SVG file(s)
Converting tmp.svg to /tmp/olV0zQ_wYQ/chart.pdf ... ... success
这是我的svg file。
答案 0 :(得分:2)
我遇到了同样的问题。 它在本地计算机上运行良好,但在远程服务器(debian)上运行不正常。 我通过重新定位文本解决了它(字体在那里,但是在视野之外)
请试试这个:
<?xml version="1.0"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="500" height="330" viewBox="0 0 500 300">
<style type="text/css"><![CDATA[
.xAxisLabels
{
color: #000000;
font-family: Arial
}
]]></style>
<title>title</title>
<desc>stuff</desc>
<defs>
<font-face font-family="Arial">
<font-face-src>
<font-face-uri xlink:href="/usr/share/hholdings/fonts/Arial.ttf"/>
</font-face-src>
</font-face>
</defs>
<text transform="translate(112.5 300)" class="xAxisLabels">jan</text>
<text transform="translate(204.17 300)" class="xAxisLabels">feb</text>
<text transform="translate(295.84 300)" class="xAxisLabels">mar</text>
<text transform="translate(387.51 300)" class="xAxisLabels">apr</text>
</svg>