这几天搞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软件可能会出现错误。

最新文章

  1. svn error
  2. Swiper说明&amp;&amp;API手册 【中文手册Swiper】
  3. Java如何获取系统cpu、内存、硬盘信息
  4. 圣杯VS双飞翼
  5. 【转】移动端App测试实用指南
  6. [LeetCode#55, 45]Jump Game, Jump Game II
  7. 【czy系列赛】czy的后宫4 &amp;&amp; bzoj1925 [Sdoi2010]地精部落
  8. 向西项目管理工具Maven一片
  9. 使用jmeter进行APP接口测试经验总结
  10. sqlserver 处理百万级以上的数据处理与优化
  11. SQL强化(二) 在Oracle 中写代码
  12. mysql基操
  13. MySQL执行语句的顺序
  14. 机器学习笔记(2):线性回归-使用gluon
  15. R语言——实验4-人工神经网络
  16. 安全概念:DMZ(非军事化区,隔离区)
  17. Docker技术入门与实战(文摘)
  18. .NET开发过程中的全文索引使用技巧之Solr(转)
  19. 修改默认的inout输入框背景颜色
  20. 如何在Window 7 64位 PL/SQL 访问oracle 数据库

热门文章

  1. openerp经典收藏 对象定义详解(转载)
  2. WPF-控件-将ListBox条目水平排列
  3. static方法不能直接访问类内的非static变量和不能调用this,super语句分析
  4. Ui设计哪里有好的素材
  5. js图片旋转
  6. 1072: [SCOI2007]排列perm - BZOJ
  7. SpringJUnit4测试--测试无反应/控制台报空指针的解决---junit的jar冲突!
  8. myeclipse一直bulid workspace 的解决
  9. CSS滤镜详解
  10. docker设置代理