// paste from clipboard SVG or image private void loadFromClipboard() { preset2DView(); string svg_format1 = "image/x-inkscape-svg"; string svg_format2 = "image/svg+xml"; IDataObject iData = Clipboard.GetDataObject(); if (iData.GetDataPresent(DataFormats.Text)) { string checkContent = (String)iData.GetData(DataFormats.Text); string[] checkLines = checkContent.Split('\n'); int posSVG = checkContent.IndexOf("<svg "); if ((posSVG >= 0) && (posSVG < 2)) { MemoryStream stream = new MemoryStream(); stream = (MemoryStream)iData.GetData("text"); byte[] bytes = stream.ToArray(); string txt = ""; if (!(checkContent.IndexOf("<?xml version") >= 0)) { txt += "<?xml version=\"1.0\"?>\r\n"; } txt += System.Text.Encoding.Default.GetString(bytes); if (!(txt.IndexOf("xmlns") >= 0)) { txt = txt.Replace("<svg", "<svg xmlns=\"http://www.w3.org/2000/svg\" version=\"1.1\" "); } this.Cursor = Cursors.WaitCursor; //MessageBox.Show(txt); string gcode = GCodeFromSVG.convertFromText(txt.Trim((char)0x00), true); // import as mm if (gcode.Length > 2) { fCTBCode.Text = gcode; fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); redrawGCodePath(); this.Text = appName + " | Source: from Clipboard"; } this.Cursor = Cursors.Default; updateControls(); setLastLoadedFile("Data from Clipboard: SVG"); } else if ((checkLines[0].Trim() == "0") && (checkLines[1].Trim() == "SECTION")) { MemoryStream stream = new MemoryStream(); stream = (MemoryStream)iData.GetData("text"); byte[] bytes = stream.ToArray(); string txt = System.Text.Encoding.Default.GetString(bytes); this.Cursor = Cursors.WaitCursor; //MessageBox.Show(txt); string gcode = GCodeFromDXF.convertFromText(txt); if (gcode.Length > 2) { fCTBCode.Text = gcode; fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); redrawGCodePath(); this.Text = appName + " | Source: from Clipboard"; } this.Cursor = Cursors.Default; updateControls(); setLastLoadedFile("Data from Clipboard: DXF"); } else { fCTBCode.Text = (String)iData.GetData(DataFormats.Text); fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); redrawGCodePath(); setLastLoadedFile("Data from Clipboard: Text"); } } else if (iData.GetDataPresent(svg_format1) || iData.GetDataPresent(svg_format2)) { MemoryStream stream = new MemoryStream(); if (iData.GetDataPresent(svg_format1)) { stream = (MemoryStream)iData.GetData(svg_format1); } else { stream = (MemoryStream)iData.GetData(svg_format2); } byte[] bytes = stream.ToArray(); string txt = System.Text.Encoding.Default.GetString(bytes); this.Cursor = Cursors.WaitCursor; string gcode = GCodeFromSVG.convertFromText(txt); if (gcode.Length > 2) { fCTBCode.Text = gcode; fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); redrawGCodePath(); this.Text = appName + " | Source: from Clipboard"; } this.Cursor = Cursors.Default; updateControls(); setLastLoadedFile("Data from Clipboard: SVG"); } else if (iData.GetDataPresent(DataFormats.Bitmap)) { if (_image_form == null) { _image_form = new GCodeFromImage(true); _image_form.FormClosed += formClosed_ImageToGCode; _image_form.btnGenerate.Click += getGCodeFromImage; // assign btn-click event } else { _image_form.Visible = false; } _image_form.Show(this); _image_form.loadClipboard(); setLastLoadedFile("Data from Clipboard: Image"); } else { string tmp = ""; foreach (string format in iData.GetFormats()) { tmp += format + "\r\n"; } MessageBox.Show(tmp); } }
// paste from clipboard SVG or image private void loadFromClipboard() { string svg_format1 = "image/x-inkscape-svg"; string svg_format2 = "image/svg+xml"; IDataObject iData = Clipboard.GetDataObject(); if (iData.GetDataPresent(DataFormats.Text)) { fCTBCode.Text = (String)iData.GetData(DataFormats.Text); setLastLoadedFile("Data from Clipboard: Text"); } else if (iData.GetDataPresent(svg_format1) || iData.GetDataPresent(svg_format2)) { MemoryStream stream = new MemoryStream(); if (iData.GetDataPresent(svg_format1)) { stream = (MemoryStream)iData.GetData(svg_format1); } else { stream = (MemoryStream)iData.GetData(svg_format2); } byte[] bytes = stream.ToArray(); string txt = System.Text.Encoding.Default.GetString(bytes); this.Cursor = Cursors.WaitCursor; string gcode = GCodeFromSVG.convertFromText(txt); if (gcode.Length > 2) { fCTBCode.Text = gcode; fCTBCode.UnbookmarkLine(fCTBCodeClickedLineLast); redrawGCodePath(); this.Text = appName + " | Source: from Clipboard"; } this.Cursor = Cursors.Default; updateControls(); setLastLoadedFile("Data from Clipboard: SVG"); } else if (iData.GetDataPresent(DataFormats.Bitmap)) { if (_image_form == null) { _image_form = new GCodeFromImage(true); _image_form.FormClosed += formClosed_ImageToGCode; _image_form.btnGenerate.Click += getGCodeFromImage; // assign btn-click event } else { _image_form.Visible = false; } _image_form.Show(this); _image_form.loadClipboard(); setLastLoadedFile("Data from Clipboard: Image"); } else { string tmp = ""; foreach (string format in iData.GetFormats()) { tmp += format + "\r\n"; } MessageBox.Show(tmp); } }