Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在svg中使字符居中_Svg - Fatal编程技术网

在svg中使字符居中

在svg中使字符居中,svg,Svg,我希望从一个以100x100窗口为中心的任意字体生成一个包含单个ascii字符(比如“g”或“W”)的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 viewBox="0 0 100

我希望从一个以100x100窗口为中心的任意字体生成一个包含单个ascii字符(比如“g”或“W”)的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 viewBox="0 0 100 100"
     xmlns="http://www.w3.org/2000/svg" version="1.1">

  <text x="50" y="50" font-size="100px" 
      text-anchor="middle" alignment-baseline="middle">g</text>
</svg>

G

在SVG中没有垂直居中文本的通用方法


最好的办法是确定基线(
属性)在特定字体和字符组(例如所有大写字母)中的位置。

SVG本身没有自动垂直布局功能;您需要其他东西来计算框的高度,比如JavaScript或


看起来您正在将其嵌入web浏览器中。如果是这样,那么您可以使用HTML的自动布局功能来实现这一点,使用
在SVG中嵌入一个HTML片段,并使用
显示:表格单元格;垂直对齐:在内容上居中

确定吗?对齐基线有一个属性“middle”,该属性足够靠近角色的中心,以便于我使用。。。请参见,这取决于SVG渲染器是否支持对齐基线(AFAIK并非所有支持),以及字体是否具有基线表。此外,它以字体为中心,而不是单个字符。实际上,我正在尝试使用imagemagick导出到png,因此没有浏览器:(@ArthurB.Ah,那么我的回答中的那部分就没用了。不过,你为什么要在文档中使用DOCTYPE呢?仅供参考,描述SVG文件的推荐方法就是:
没有DTD,没有
版本
属性。我想复制粘贴^^