我通过svg导出图片。以下是我的c#
代码。
string chartTitle = "ABC 50 µG";
XmlDocument xd = new XmlDocument();
xd.XmlResolver = null;
string chartSvg = "<svg><text x=\"1\" y=\"15\" font-size=\"14\" font-weight='bold' font-family=\"Arial\" ><tspan x=\"458\" dy=\"10\"> " + chartTitle + "</tspan></text></svg>"
xd.LoadXml(chartSvg);
svgGraph = Svg.SvgDocument.Open(xd);
由于Invalid character in the given encoding. Line 1, position 110.
中的µ
符号,我在上一行收到错误chartTitle
。
请帮助,我该如何处理这个
答案 0 :(得分:0)
您可以尝试这样:
var byteArr = Encoding.ASCII.GetBytes(svgContents);
using (var str = new MemoryStream(byteArr))
{
var svgDoc = SvgDocument.Open(str);
var bitmap = svgDoc.Draw();
bitmap.Save(path, ImageFormat.Png);
}
答案 1 :(得分:0)
使用以下代码获得解决方案。
string chartTitle = "ABC 50 µG";
XmlDocument xd = new XmlDocument();
xd.XmlResolver = null;
string chartSvg = "<svg><text x=\"1\" y=\"15\" font-size=\"14\" font-weight='bold' font-family=\"Arial\" ><tspan x=\"458\" dy=\"10\"> " + chartTitle + "</tspan></text></svg>"
xd.LoadXml(chartSvg);
XmlDeclaration obj = xd.CreateXmlDeclaration("1.0", "ISO-8859-1", "yes");
XmlElement root = xd.DocumentElement;
xd.InsertBefore(obj, root);
svgGraph = Svg.SvgDocument.Open(xd);