如何在C#中将SVG字符串写入文件

时间:2017-02-22 18:08:35

标签: c# svg

我有一个SVG字符串,我希望将其作为svg文件保存到具有C#的服务器。我使用以下代码:

var guid = Guid.NewGuid().ToString("N");
Directory.CreateDirectory(AppSettings.ExportFolderPath.TrimEnd('\\') + String.Format("\\{0}\\svg", guid));
var svgFile = Path.Combine(AppSettings.ExportFolderPath.TrimEnd('\\') + String.Format("\\{0}\\svg\\graph.svg", guid));

File.WriteAllText(svgFile, svg);

在最后一行,我将svg字符串写入文件,但是当我打开生成的文件时,它不是SVG,而且似乎是垃圾文本。

EX:

enter image description here

我所拥有的SVG应该正确格式化,因为它直接来自浏览器(并在我将其发送到C#之前正确显示)。以下是生成的SVG的片段:

enter image description here

编辑:

以下是File.WriteAllText调用时svg变量的图像。

enter image description here

编辑2: JSBIN for the svg JSBin中的svg与svg变量完全相同。在检查输出svg文件时,它确实被写入文件。由于某种原因,它将无法正确打开。这不是我认为的C#writeAllText问题。

1 个答案:

答案 0 :(得分:0)

SVG字符串确实正确写入输出文件。当使用inkscape打开文件时,它看起来像预期的那样(在浏览器中打开最初不起作用)。

感谢您的建议!