我有一个带有弯曲文本的SVG,为了能够打开它,Illustartor或CorelDraw,我编写了一个PHP脚本将文本转换为后者(AI曲线文本错误)。但是在这一转变之后,这段文字就被剪掉了。
我试过:
viewbox ->文本对象
text-anchor="start"更改为text-anchor="middle" ->文本的开始和结尾被剪切
preserveAspectRatio ->并不能得到想要的结果另外,我认为增加viewbox的宽度不会奏效,因为它仍然会带来一些转换,并且可以缩放不需要它的文本。
另外,我觉得我目前的成绩没有很好地显示出来,应该更广泛。
原件:
<?xml version="1.0" encoding="UTF-8"?>
<svg><svg xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink" width="204.21875"
height="47.0625" viewBox="0 0 204.21875 47.0625"><g
id="0.11324252430130399"><text fill="#FF0000" stroke="none" stroke-
width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-
anchor="start" font-size="24px" font-family="arial" style="paint-
order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-
textspacing="0"><textPath xlink:href="#textPath-item-0"><tspan dy="0">some
random text</tspan></textPath></text></g><defs><path id="textPath-item-0"
d="M 8.671875 42.27672695769752 A 224.50591156146544 224.50591156146544 0
0 1 194.87404392183777 42.27672695769752"/></defs></svg></svg>
转型后
/*
* 提示:该行代码过长,系统自动注释不进行高亮。一键复制会移除系统注释
* <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" x="0px" y="0px" width="10in" height="19in" viewBox="0 0 291 389"><g xmlns:default="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"><default:svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 204.21875 47.0625" x="41.794002" y="124.031094" width="199.315212" height="43.00006"><default:g id="0.11324252430130399"><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 10.508575634073 41.449625072391) rotate(-22.759904875656 0 0)">s</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 22.470359428287 36.535076221313) rotate(-19.364780943929 0 0)">o</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 36.342968127298 31.808497796986) rotate(-14.963694365763 0 0)">m</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 55.544337554077 26.873580391866) rotate(-10.562607787597 0 0)">e</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 68.514289571198 24.539662965228) rotate(-7.6704651790886 0 0)"> </default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 77.308993497502 23.399375413111) rotate(-5.4070492246034 0 0)">r</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 86.756329148838 22.565275109953) rotate(-2.5149066160946 0 0)">a</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 100.5411746455 22.065879210017) rotate(1.0059626464378 0 0)">n</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 114.33067013955 22.413982141576) rotate(4.5268319089703 0 0)">d</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 128.07276017669 23.608269813315) rotate(8.0477011715028 0 0)">o</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 142.56376901114 25.799269283198) rotate(12.448787749668 0 0)">m</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 161.28748096036 30.094565435109) rotate(16.22114767381 0 0)"> </default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 169.7904205993 32.613908672806) rotate(18.484563628295 0 0)">t</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 178.76606186368 35.677523876761) rotate(21.376706236804 0 0)">e</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 191.57198798021 40.803888858848) rotate(24.897575499337 0 0)">x</default:text><default:text xmlns:default="http://www.w3.org/2000/svg" fill="#FF0000" stroke="none" stroke-width="0" stroke-linecap="round" stroke-linejoin="round" x="" y="" text-anchor="start" font-size="24px" font-family="arial" style="paint-order:stroke;" data-textcurve="49" data-itemzoom="1 1" data-textspacing="0" transform="matrix(1 0 0 1 203.49025065141 46.427218902602) rotate(27.789718107846 0 0)">t</default:text></default:g><default:defs><default:path id="textPath-item-0" d="M 8.671875 42.27672695769752 A 224.50591156146544 224.50591156146544 0 0 1 194.87404392183777 42.27672695769752"></default:path></default:defs></default:svg></g></svg>
*/在这里你可以看到我确实保留了原始的视口和宽度/高度。
画这个物体的方法是什么,这样它就不会被切割,也不会被缩放?
发布于 2019-08-11 12:37:53
这里的问题不是关于svg,而是关于PHP中的转换。您可以在这个密码中看到原因。我把你原来的svg代码用红色加上一些蓝色的转换字母。正如您所看到的,字母不在相同的坐标中,这就是为什么结果由viewport裁剪的原因。另外,关于转换后的svg代码的几个要点:
<text>标记以<default:text>.This的形式出现,看起来像是PHP脚本中的一个问题。id的<g>元素是"0.11324252430130399"。也许这个号码应该在别的地方?<svg>中有一个<svg>。这可能会在某个地方引起问题。考虑移除被驱逐的svg。总之,您应该修改PHP转换,svg代码运行正常。
https://stackoverflow.com/questions/57446133
复制相似问题