• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

AutoCAD图形打印出图片 C#

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

      这几天搞cad二次开发,用的是C#语言,目前在网上找到的资料比较少。弄了两天,才做出怎样实现打印出图片。首先得在AutoCAD软件界面下,设置打印机的页面设置和打印机设备名称一样(以防打印不出来)。即都为PublishToWeb JPG.pc3。注意图片名称最好为数字(我也不知道原因)。具体实现代码如下:

 /// <summary>
        /// 打印出图片
        /// </summary>
        public void PrintCADToJPG()
        {
            bool isZong = true;
            isZong=PrintPlotRotation();
            string jpgNamePath = StaticDJMessage.DictoryDJ + "\\" + StaticDJMessage.JpgName;//目标文件
            if (System.IO.File.Exists(jpgNamePath))
            {
                System.IO.File.Delete(jpgNamePath);
            }
            AcadDocument drawing = AcadApp.ActiveDocument;
            //验证活动空间是模型空间
            if (drawing.ActiveSpace == AcActiveSpace.acPaperSpace)
            {
                drawing.MSpace = true;
                drawing.ActiveSpace = AcActiveSpace.acModelSpace;
            }
            //前台打印
            drawing.SetVariable("BACKGROUNDPLOT", 0);
            // 绘图设置
            drawing.Application.ZoomExtents();
            drawing.ActiveLayout.ConfigName = "PublishToWeb JPG.pc3";//页面设置名称
            //设置打印图纸大小
            string[] cMNameLst = (string[])drawing.ActiveLayout.GetCanonicalMediaNames();
            foreach (string name in cMNameLst)
            {
                //查找纸张大小
                if (name.Contains("2000.00") && name.Contains("2000.00"))
                {
                    drawing.ActiveLayout.CanonicalMediaName = name;
                    break;
                }
            }
            drawing.ActiveLayout.CenterPlot = true; // 居中
            drawing.ActiveLayout.PlotType = AcPlotType.acExtents;
            drawing.ActiveLayout.UseStandardScale = true; // 使用标准比例
            drawing.ActiveLayout.StandardScale = AcPlotScale.acScaleToFit; // 自动缩放适应

            // 设置打印样式
            drawing.ActiveLayout.StyleSheet = "acad.ctb"; //颜色样式表
            if (isZong)
            {
                drawing.ActiveLayout.PlotRotation = AcPlotRotation.ac0degrees; //纵向打印 
            }
            else
                drawing.ActiveLayout.PlotRotation = AcPlotRotation.ac270degrees; //纵向打印 
            //打印预览
           // drawing.Plot.DisplayPlotPreview(AcPreviewMode.acFullPreview);
            drawing.Plot.QuietErrorMode = true; // 生成存档,避免报错
            drawing.Plot.NumberOfCopies = 1;  //打印份数
            drawing.ActiveLayout.RefreshPlotDeviceInfo();
                // 打印到文件
            //第二个参数为打印机名称
            drawing.Plot.PlotToFile(jpgNamePath, "PublishToWeb JPG.pc3");
        }

注意:要设置为前台打印,如果不设置默认为后台打印,后台打印不同的CAD软件可能会出现错误。

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#类的反射实例发布时间:2022-07-10
下一篇:
[C#] - MD5 加密的具体流程发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap