コード例 #1
0
 public void GenerateSvg(Keyboard keyboard, string path, SvgGenerationOptions options = null)
 => SvgGenerator.GenerateSvg(keyboard, path, options ?? new SvgGenerationOptions());
コード例 #2
0
ファイル: ShapeDrawing.cs プロジェクト: Chronophobe/MSO_P3b
    // What to do when the user wants to export a TeX file
    private void exportHandler(object sender, EventArgs e)
    {
        Stream stream;
        SaveFileDialog saveFileDialog = new SaveFileDialog();

        saveFileDialog.Filter = "Scalable Vector Graphics (*.svg)|*.svg|TeX files (*.tex)|*.tex";
        saveFileDialog.RestoreDirectory = true;

        if(saveFileDialog.ShowDialog() == DialogResult.OK)
        {
            if((stream = saveFileDialog.OpenFile()) != null)
            {
                string name = saveFileDialog.FileName;
                string ext = Path.GetExtension(saveFileDialog.FileName).ToLower();

                switch(ext){
                    case ".tex":
                        LatexGenerator lg = new LatexGenerator();
                        using (StreamWriter writer = new StreamWriter(stream))
                        {
                            lg.FileWriter = writer;
                            writer.WriteLine("\\documentclass{article}");
                            writer.WriteLine("\\usepackage{tikz}");
                            writer.WriteLine("\\begin{document}");
                            writer.WriteLine("\\begin{tikzpicture}");
                            writer.WriteLine("\\begin{scope}[yscale= -3, xscale= 3]");
                            foreach(Shape s in this.shapes)
                            {
                                s.OutputApi = lg;
                                s.Draw();
                            }
                            writer.WriteLine("\\end{scope}");
                            writer.WriteLine("\\end{tikzpicture}");
                            writer.WriteLine("\\end{document}");
                        }
                        break;
                    default: //save as svg by default
                        SvgGenerator sg = new SvgGenerator();
                        using (StreamWriter writer = new StreamWriter(stream))
                        {
                            sg.FileWriter = writer;
                            writer.WriteLine("<?xml version=\"1.0\" standalone=\"no\"?>");
                            writer.WriteLine("<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\" \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">");
                            writer.WriteLine("<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\">");
                            foreach (Shape s in this.shapes)
                            {
                                s.OutputApi = sg;
                                s.Draw();
                            }
                            writer.WriteLine("</svg>");
                        }
                        break;
                }
            }
        }
    }