如何在波斯语(rtl)文本中使用SVG文本路径

时间:2015-07-11 21:47:49

标签: svg right-to-left persian

我想对波斯语文本使用textpath功能,但是当我这样做时,波斯文本会分成字母:

SVG textpath

在不使用文本路径功能的情况下更正波斯语文本: تیمدیامرکزتخصصیارائهخدماتسئو

2 个答案:

答案 0 :(得分:3)

这是SVG指定用于在路径上布置文本的算法的结果。

http://www.w3.org/TR/SVG/text.html#TextpathLayoutRules

该算法指定每个字符完整定位并旋转以定向该点处路径的切线。

然而,SVG规范在method个元素上提供了一个名为<textPath>的属性,它可以做你想要的。

http://www.w3.org/TR/SVG11/text.html#TextPathElementMethodAttribute

不幸的是,目前没有浏览器支持AFAIK。

答案 1 :(得分:1)

同样,您可以使用“Shetab Farsi Negar 3.8”软件编辑文本。 此链接可下载此软件:Shetab Farsi Negar 3.8(密码:www.p30download.com)

如果链接不起作用,您可以在伊朗网站上搜索此软件。

Example

您问题的正确代码:

.contain-demo {
  margin: 50px auto;
  text-align: center;
}
<div class="contain-demo">
  <svg width="620" height="200">
     <defs>
        <path id="testPath" d="M3.858,58.607
        c16.784-5.985,33.921-10.518,51.695-12.99c50.522-7.028,101.982,0.51,151.892,8.283c17.83,2.777,35.632,5.711,53.437,8.628  c51.69,8.469,103.241,11.438,155.3,3.794c53.714-7.887,106.383-20.968,159.374-32.228c11.166-2.373,27.644-7.155,39.231-4.449" />
    </defs>
    <text x="2" y="40%" fill="#765373" font-size="30" font-family="'Lato', sans-serif">
      <textPath xlink:href="#testPath">ﻥﺍﺮﯾﺍ ﺭﺩ ﻮﺌﺳ ﺕﺎﻣﺪﺧ ﯽﺼﺼﺨﺗ ﺰﮐﺮﻣ ﺎﯾﺪﻣ ﯽﺗ</textPath> 
    </text> 
  </svg>
</div>