我正在从另一个应用程序获取SVG签名,并希望将其保存为字符串值,以便我们可以在当前应用程序上使用PrimeFaces签名。
这可能吗?
当前SVG
<svg xmlns="http://www.w3.org/2000/svg" version="1.2" baseProfile="tiny" viewBox="0, 0, 1320, 800" height="800" width="1320">
<g stroke-linejoin="round" stroke-linecap="round" fill="none" stroke="black">
<path stroke-width="24" d="M1068,420c0,0 0,0 0,0 "/>
<path stroke-width="27" d="M1068,420c-1,-1 -1,-1 -1,-1 "/>
<path stroke-width="25" d="M1067,419c1,-1 1,0 3,-1 1,0 1,0 1,0 "/>
</g>
</svg>
Primefaces Signature使用一个字符串
例子
{"lines":[[211.91,90.72],[209.91,90.72]]}
从svg中提取的路径。
M154,223c0,0 0,0 0,0
M154,223c0,1 0,1 0,3
M154,226c1,1 1,2 3,3
M157,229c14,4 14,5 28,8
M185,237c52,11 52,12 104,20
M289,257c62,9 62,9 124,13 62,3 62,-1 123,0 65,1 65,2 130,3 43,0 43,0 87,-2 25,-1 26,-2 51,-6
M804,265c10,-2 10,-3 19,-6
更新
我已经尝试过Suggested Conversion in comment
但是结果不够准确,无法使用。
答案 0 :(得分:1)
您不会(轻松)成功。我尝试搜索了很多(近两打)基于svg的“签名”,结果发现他们在互联网上搜索并得出以下结论:
在某些情况下,使用引用的代码将这些路径转换为多边形会(非常)紧密,但在大多数情况下不会如此。您可能会尝试改进代码,但很可能您甚至无法达到25%的准确度,这意味着75%的转化率将不够接近。
这使我想到了真正的问题。这可能是http://xyproblem.info,我个人只是显示SVG,如果是由于某些遗留问题,我将选择性地通过PrimeFaces签名组件显示新的签名,而通过SVG显示旧的签名,或者通过SVG轻松transforming the PrimeFaces signatures to SVG