我从命令行执行Inkscape将SVG转换为PDF,我依靠fontconfig将SVG中文本元素的字体系列与(Debian)机器上的字体文件相匹配。除非文本元素的样式属性的font-family值包含句点(。),否则这种方法有效。例如,SVG中的文本元素的样式值为:
font-family: Lobster1.4
在PDF Inkscape导出中,此元素以默认字体呈现,而不是龙虾。所以我在/etc/fonts/local.conf中添加一条规则:
1 <match target="pattern">
2 <test qual="any" name="family">
3 <string>Lobster1.4</string>
4 </test>
5 <edit name="family" mode="assign">
6 <string>Lobster 14</string>
7 </edit>
8 <edit name="style" mode="assign">
9 <string>Regular</string>
10 </edit>
11 </match>
然后我运行fc-cache,像以前一样使用Inkscape进行转换,然后文本元素仍然不会在龙虾中呈现。
但是如果我将此元素的SVG中的样式值更改为:
font-family: Lobster14
并将上面的第3行更改为:
3 <string>Lobster14</string>
文本元素在龙虾中呈现完美。所以它是引起问题的句点(点)字符。不幸的是,我正在处理的业务流程禁止我改变SVG输入,因此我必须处理这段时间。但是怎么样?如何逃脱第3行的点?这不起作用:
3 <string>Lobster1\.4</string>