コマンドラインから Inkscape を実行して SVG を PDF に変換しています。fontconfig を使用して、SVG 内のテキスト要素の font-family を (Debian) マシン上のフォント ファイルと一致させています。これは、テキスト要素の style プロパティの font-family 値にピリオド (.) が含まれている場合を除いて機能します。たとえば、SVG のテキスト要素のスタイル値は次のとおりです。
font-family: Lobster1.4
PDF Inkscape エクスポートでは、この要素は Lobster ではなくデフォルトのフォントでレンダリングされます。そこで、/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 を使用して変換しますが、テキスト要素は Lobster でレンダリングされません。
しかし、この要素の SVG のスタイル値を次のように変更すると:
font-family: Lobster14
上記の 3 行目を次のように変更します。
3 <string>Lobster14</string>
Lobster では、テキスト要素が完全にレンダリングされます。したがって、問題を引き起こしているのはピリオド (ドット) 文字です。残念ながら、私が取り組んでいるビジネス プロセスでは、SVG 入力を変更することは禁止されているため、この期間に対処する必要があります。しかし、どのように?3 行目のドットをエスケープするにはどうすればよいですか? これは動作しません:
3 <string>Lobster1\.4</string>