2016-05-11 9 views
0

Ich exportiere Bild über Svg. Unten ist mein c# Code.Erhalte "ungültiges Zeichen in der gegebenen Kodierung."

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); 

Ich erhalte Fehler Invalid character in the given encoding. Line 1, position 110. auf letzte Zeile oben aufgrund µ Symbol in meinem chartTitle.

Bitte helfen, wie kann ich bewältigen diese

+0

Sie haben versucht, 'μ' durch' \ u00B5' –

+0

@AlvinK zu ersetzen. versuchte dies, aber im exportierten Bild zeigt es 'ABC 50 \ u00B5G' – Rohaan

+0

http://Stackoverflow.com/questions/310669/why-does-c-sharp-xmldocument-loadxmlstring-fail-when-an-xml-header- is-included - benötigt die UTF8-Codierung –

Antwort

0

Got SVG Engine codeplex aussehen auch.

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); 
0

Sie mögen dieses versuchen:

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); 
} 

bei der die Lösung mit folgenden Code

+0

Versucht dies ..getting "spezifizierte Dokument nicht gefunden" Ausnahme – Rohaan

Verwandte Themen