• 导出当前视图为BMP、JPG、PDF等格式


    导出当前视图为BMP、JPG、PDF等格式

    public void PageExport()
            {
                SaveFileDialog pSaveDlg = new SaveFileDialog();
                pSaveDlg.Title = "导出图形";
                pSaveDlg.DefaultExt = "pdf";
                pSaveDlg.Filter = "PDF (*.pdf)|*.pdf|TIFF (*.tif)|*.tif|BMP (*.bmp)|*.bmp|JPEG (*.jpg)|*.jpg|GIF (*.gif)|*.gif|EMF (*.emf)|*.emf|SVG (*.svg)|*.svg|AI (*.ai)|*.ai";
                pSaveDlg.FilterIndex = 1;
                pSaveDlg.RestoreDirectory = true;
                pSaveDlg.OverwritePrompt = true;

                if (pSaveDlg.ShowDialog() == DialogResult.OK)
                {
                    string pFilePath = pSaveDlg.FileName;

                    IActiveView pActiveView = AxPageLayoutControl1.ActiveView;
                    IExport pExport;
                    tagRECT exportFrame;
                    IEnvelope pEnv;
                    int hdc;
                    int dpi;

                    exportFrame = pActiveView.ExportFrame;
                    pEnv = new EnvelopeClass();
                    pEnv.PutCoords(exportFrame.left, exportFrame.top, exportFrame.right, exportFrame.bottom);

                    switch (pSaveDlg.FilterIndex)
                    {
                        case 1://pdf
                            pExport = new ExportPDFClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 2://tif
                            pExport = new ExportTIFFClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 3://bmp
                            pExport = new ExportBMPClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 4://jpg
                            pExport = new ExportJPEGClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 5://gif
                            pExport = new ExportGIFClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 6://emf
                            pExport = new ExportEMFClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 7://svg
                            pExport = new ExportSVGClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        case 8://ai
                            pExport = new ExportAIClass();
                            dpi = (int)pExport.Resolution;
                            pExport.PixelBounds = pEnv;
                            pExport.ExportFileName = pSaveDlg.FileName;
                            pExport.Resolution = (short)dpi;

                            hdc = pExport.StartExporting();
                            pActiveView.Output(hdc, dpi, ref exportFrame, null, null);
                            pExport.FinishExporting();
                            break;
                        default:
                            break;
                    }
                    MessageBox.Show("导出完毕!");
                }

    视图导出主要用到IExport 接口,在旧版本中采用IExporter接口,AE9以后替代为IExport,而且导出的类型也有增加。

  • 相关阅读:
    浮动与浮动的清除
    【最全】经典排序算法(C语言)
    Python类中的self到底是干啥的
    浅析Python3中的bytes和str类型
    Shell十三问[转]
    VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容
    C语言运算符优先级
    mysql主要性能监控指标
    sql 优化
    npm install安装时忘记--save解决方法
  • 原文地址:https://www.cnblogs.com/lauer0246/p/1112770.html
Copyright © 2020-2023  润新知