这几天搞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", );
// 绘图设置
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 = ; //打印份数
drawing.ActiveLayout.RefreshPlotDeviceInfo();
// 打印到文件
//第二个参数为打印机名称
drawing.Plot.PlotToFile(jpgNamePath, "PublishToWeb JPG.pc3");
}

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

AutoCAD图形打印出图片 C#的更多相关文章

  1. 写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名

    写一个PHP函数,实现扫描并打印出指定目录下(含子目录)的所有jpg文件名 <?php $dir = "E:\照片\\";//打印文件夹中所有jpg文件 function p ...

  2. 1.关于QT中的Graphics绘图,定时器,动画,将窗口中的内容打印到图片上,打印机,打印预览

     1 新建项目 A  修改pro中的内容如下: HEADERS += \ MyWidget.h SOURCES += \ MyWidget.cpp QT += gui widgets prints ...

  3. 漫谈程序员系列:3D打印能打印出程序员吗

    首先声明,本文是一本正经的胡扯,绝不是随随便便的胡扯,请您不要随便攻击我胡说八道.我要反复星爷在<喜剧之王>里的台词:事实上.我是一本正经的喷子. 3D打印的定义 关于3D打印,以下是来自 ...

  4. C#:使用FastReport打印带图片传参模板的实现方法

    大家都知道,C#打印图片可以直接调用PrintDocument控件的PrintPage事件,通过画刷对image对象直接进行绘制.但是这种方法存在局限,例如如果打印的图片需要按纸张大小进行缩放的话,那 ...

  5. .NET 采用 SkiaSharp 生成二维码和图形验证码及图片进行指定区域截取方法实现

    在最新版的 .NET 平台中,微软在逐步放弃 System.Drawing.Imaging ,给出的理由如下: System.Drawing命名空间对某些操作系统和应用程序类型有一些限制. 在Wind ...

  6. JS 点击弹出图片/ 仿QQ商城点击左右滚动幻灯片/ 相册模块,点击弹出图片,并左右滚动幻灯片

    1, 点击弹出图片 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://w ...

  7. 以16进制打印出一块内存buff

    如下代码(支持windows与Linux)会以[16进制][每行16字节]打印出一块内存的内容: void PrintBuffer(void* pBuff, unsigned int nLen) { ...

  8. 题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。例如:153是一个 "水仙花 数 ",因为153=1的三次方+5的三次方+3的三次方。

    题目:打印出所有的 "水仙花数 ",所谓 "水仙花数 "是指一个三位数,其各位数字立方和等于该数本身.例如:153是一个 "水仙花 数 ", ...

  9. javap 可以打印出用于jni调用的java函数的签名信息

    javap可以打印出java的字节码: -c     Prints out disassembled code, i.e., the instructions that comprise the Ja ...

随机推荐

  1. json string 与object 之间的转化

    1.将json string转化成object 1: public static T GetObjectFromJson<T>(string jsonString) 2: { 3: Dat ...

  2. 用python实现哈希表

    哈哈,这是我第一篇博客园的博客.尝试了一下用python实现的哈希表,首先处理冲突的方法是开放地址法,冲突表达式为Hi=(H(key)+1)mod m,m为表长. #! /usr/bin/env py ...

  3. WPF编译时提示“...不包含适合于入口点的静态‘Main’方法 ...”

    今天看了一下wpf的Application类方面的知识,一个windows应用程序由一个Application类的实例表示,该类跟踪在应用程序中打开的所有窗口,决定何时关闭应用程序(属性 Shutdo ...

  4. 关于php框架

    最近学习yii2.0 强哥原班人马开发,不得不看 同时也需要关注一下drupal8和symfony2

  5. Linq小技巧

    遍历集合ForEach: listAll.Items.Clear(); List<Users> list = DP.UsersDAO.GetInfoList(); list.ForEach ...

  6. Careercup - Facebook面试题 - 4907555595747328

    2014-05-02 07:49 题目链接 原题: Given a set of n points (coordinate in 2d plane) within a rectangular spac ...

  7. 1070: [SCOI2007]修车 - BZOJ

    Description 同一时刻有N位车主带着他们的爱车来到了汽车维修中心.维修中心共有M位技术人员,不同的技术人员对不同的车进行维修所用的时间是不同的.现在需要安排这M位技术人员所维修的车及顺序,使 ...

  8. Java多线程——<一>概述、定义任务

    一.概述 为什么使用线程?从c开始,任何一门高级语言的默认执行顺序是“按照编写的代码的顺序执行”,日常开发过程中写的业务逻辑,但凡不涉及并发的,都是让一个任务顺序执行以确保得到想要的结果.但是,当你的 ...

  9. oracle RAC--归档日志的开启方法

    oracle RAC--归档日志的开启方法 2011-10-07 15:53:04 分类: Oracle oracle RAC--归档日志的开启方法   ======================= ...

  10. 地图索引 R-tree

    http://blog.csdn.net/v_JULY_v/article/details/6530142 984年,加州大学伯克利分校的Guttman发表了一篇题为“R-trees: a dynam ...