//导出 private void btnOK_Click(object sender, EventArgs e) { if (tbxSavePath.Text.Trim() == "" || !tbxSavePath.Text.Trim().Contains("\\")) { MessageBox.Show("请选择正确的输出路径!", "提示"); return; } IExport pExport = null; try { switch (pSimpleFiletype) { case "tif": pExport = new ExportTIFF() as IExport; break; case "EMF": pExport = new ExportEMF() as IExport; break; case "eps": pExport = new ExportPS() as IExport; break; case "ai": pExport = new ExportAI() as IExport; break; case "pdf": pExport = new ExportPDF() as IExport; break; case "svg": pExport = new ExportSVG() as IExport; break; case "bmp": pExport = new ExportBMP() as IExport; break; case "jpg": pExport = new ExportEMF() as IExport; break; case "png": pExport = new ExportPNG() as IExport; break; case "gif": pExport = new ExportGIF() as IExport; break; default: return; } pExport.ExportFileName = pSavePath; pExport.Resolution = pResolution; tagRECT pTagRECT; pTagRECT = pActiveView.ExportFrame; IPrintAndExport printAndExport = new PrintAndExport(); printAndExport.Export(pActiveView, pExport, pResolution, false, null); Marshal.ReleaseComObject(pExport); MessageBox.Show("导出成功!", "提示"); } catch (COMException ex) { MessageBox.Show("导出失败\n" + ex.Message, "错误"); return; } }
public static void ExportActiveView2(IActiveView iactiveView_0, string string_0) { IExport export = null; tagRECT grect; switch (System.IO.Path.GetExtension(string_0).ToLower()) { case ".emf": export = new ExportEMF() as IExport; break; case ".eps": export = new ExportPS() as IExport; break; case ".ai": export = new ExportAI() as IExport; break; case ".pdf": export = new ExportPDF() as IExport; break; case ".svg": export = new ExportSVG() as IExport; break; case ".bmp": export = new ExportBMP() as IExport; break; case ".jpg": export = new ExportJPEG() as IExport; break; case ".png": export = new ExportPNG() as IExport; break; case ".tif": export = new ExportTIFF() as IExport; break; case ".gif": export = new ExportGIF() as IExport; break; default: return; } export.ExportFileName = string_0; int num2 = 96; int num3 = 300; try { export.Resolution = num3; if (export is ISettingsInRegistry) { (export as ISettingsInRegistry).RestoreDefault(); } } catch { } grect.left = 0; grect.top = 0; grect.right = iactiveView_0.ExportFrame.right * (num3 / num2); grect.bottom = iactiveView_0.ExportFrame.bottom * (num3 / num2); IEnvelope envelope = new Envelope() as IEnvelope; envelope.PutCoords((double)grect.left, (double)grect.top, (double)grect.right, (double)grect.bottom); export.PixelBounds = envelope; int hDC = export.StartExporting(); iactiveView_0.Output(hDC, (int)export.Resolution, ref grect, null, null); export.FinishExporting(); export.Cleanup(); }
private void ExportTool() { IExport pExport = null; // IExportJPEG pExportFormat; IWorldFileSettings pWorldFile = null; IExportImage pExportType; IEnvelope pEnv = new Envelope() as IEnvelope; int lResolution; lResolution = Convert.ToInt32(this.numericUpDown1.Value); switch (this.saveFileDialog1.Filter.ToString().Trim().Substring(0, 3)) { case "jpg": pExport = new ExportJPEG() as IExport; break; case "bmp": pExport = new ExportBMP() as IExport; break; case "gif": pExport = new ExportGIF() as IExport; break; case "tif": pExport = new ExportTIFF() as IExport; break; case "png": pExport = new ExportPNG() as IExport; break; case "emf": pExport = new ExportEMF() as IExport; break; case "pdf": pExport = new ExportPDF() as IExport; break; case ".ai": pExport = new ExportAI() as IExport; break; case "svg": pExport = new ExportSVG() as IExport; break; case "ps": pExport = new ExportPS() as IExport; break; default: pExport = new ExportJPEG() as IExport; break; } if (this.textBox1.Text.ToString().Trim() != "") { if (System.IO.File.Exists(this.textBox1.Text.ToString()) == true) { MessageBox.Show("该文件已经存在,请重新命名!"); this.textBox1.Text = ""; this.textBox1.Focus(); } else { pExport.ExportFileName = this.textBox1.Text; pExport.Resolution = lResolution; pExportType = pExport as IExportImage; pExportType.ImageType = esriExportImageType.esriExportImageTypeTrueColor; pEnv = pActiveView.Extent; pWorldFile = (IWorldFileSettings)pExport; pWorldFile.MapExtent = pEnv; pWorldFile.OutputWorldFile = false; tagRECT deviceRECT; deviceRECT = Form1.m_mapControl.ActiveView.ScreenDisplay.DisplayTransformation.get_DeviceFrame(); IEnvelope pDriverBounds; pDriverBounds = new Envelope() as IEnvelope; pDriverBounds.PutCoords(deviceRECT.left, deviceRECT.bottom, deviceRECT.right, deviceRECT.top); pExport.PixelBounds = pDriverBounds; ITrackCancel pTrackCancel = new TrackCancel(); Form1.m_mapControl.ActiveView.Output(pExport.StartExporting(), lResolution, ref deviceRECT, pActiveView.Extent, pTrackCancel); pExport.FinishExporting(); MessageBox.Show("打印图片保存成功!", "保存", MessageBoxButtons.OK); this.Close(); } } else { MessageBox.Show("请保存文件!"); } }
private void miOutput_Click(object sender, EventArgs e) { SaveFileDialog m_save = new SaveFileDialog(); m_save.Filter = "jpeg图片(*.jpg)|*.jpg|tiff图片(*.tif)|*.tif|bmp图片(*.bmp)|*.bmp|emf图片(*.emf)|*.emf|png图片(*.png)|*.png|gif图片(*.gif)|*.gif"; m_save.ShowDialog(); string Outpath = m_save.FileName; if (Outpath != "") { //分辨率 //double resulotion = axMapControl1.ActiveView.ScreenDisplay.DisplayTransformation.Resolution; double resulotion = axPageLayoutControl1.ActiveView.ScreenDisplay.DisplayTransformation.Resolution; IExport m_export = null; if (Outpath.EndsWith(".jpg")) { m_export = new ExportJPEG() as IExport; } else if (Outpath.EndsWith(".tig")) { m_export = new ExportTIFF() as IExport; } else if (Outpath.EndsWith(".bmp")) { m_export = new ExportBMP() as IExport; } else if (Outpath.EndsWith(".emf")) { m_export = new ExportEMF() as IExport; } else if (Outpath.EndsWith(".png")) { m_export = new ExportPNG() as IExport; } else if (Outpath.EndsWith(".gif")) { m_export = new ExportGIF() as IExport; } //设置输出的路径 m_export.ExportFileName = Outpath; //设置输出的分辨率 m_export.Resolution = resulotion; tagRECT piexPound; //piexPound = axMapControl1.ActiveView.ScreenDisplay.DisplayTransformation.get_DeviceFrame(); piexPound = axPageLayoutControl1.ActiveView.ScreenDisplay.DisplayTransformation.get_DeviceFrame(); IEnvelope m_envelope = new Envelope() as IEnvelope; m_envelope.PutCoords(piexPound.left, piexPound.bottom, piexPound.right, piexPound.top); //设置输出的IEnvelope m_export.PixelBounds = m_envelope; ITrackCancel m_trackCancel = new CancelTracker(); //输出的方法 // axMapControl1.ActiveView.Output(m_export.StartExporting(), (short)resulotion, ref piexPound, axMapControl1.ActiveView.Extent, m_trackCancel); axPageLayoutControl1.ActiveView.Output(m_export.StartExporting(), (short)resulotion, ref piexPound, axPageLayoutControl1.ActiveView.Extent, m_trackCancel); m_export.FinishExporting(); } else { MessageBox.Show("输出图像名称不能为空!"); } }