最近写了个工具,将指定目录下的CAD文件批量转换为图片格式。

首先需要添加对应的引用 :

在AutoCAD2008的环境下对应AutoCAD 2008 Type Library 和 AutoCAD/ObjectDBX  Common 17.0 Type Library 这两个引用,

笔者由于是AutoCAD2010,只找到了AutoCAD 2010 Type Library 没能找到第二个,百度后得知添加对文件“C:\Program Files\Common Files\Autodesk Shared\axdb18enu.tlb”的引用就可以了。

初始化AutoCAD,根据版本不同对应的ProgramID也不相同:

private static AcadApplication _app = null;

 #region 初始化CAD程序
#region CAD ProgramID对照表
//AutoCAD 2004
//R16
//AutoCAD.Application.16
//AutoCAD 200
//R16.
//AutoCAD.Application.16.
//AutoCAD 2006
//R16.
//AutoCAD.Application.16.
//AutoCAD 2007
//R17
//AutoCAD.Application.17
//AutoCAD 2008
//R17.
//AutoCAD.Application.17.
//AutoCAD 2009
//R17.
//AutoCAD.Application.17.
//AutoCAD 2010
//R18
//AutoCAD.Application.18
//AutoCAD 20
//R18.
//AutoCAD.Application.18.
#endregion
string programID = "AutoCAD.Application.18.0";
try
{
//如果CAD已经打开,就直接获取
_app = (AcadApplication)Marshal.GetActiveObject(programID);
}
catch
{
try
{
//创建新的实例
_app = (AcadApplication)new AcadDocument().Application;
}
catch (Exception ex)
{
return;
}
}
#endregion

然后加载CAD文件并转换为图片格式,转换完成后需要关闭对应的CAD文件释放占用:

 AcadDocument doc = null;
string destPath = string.Empty;
try
{
doc = _app.Documents.Open(pFile.FullName, true);
doc.SetVariable("sdi", );
doc.SetVariable("Filedia", );
doc.SetVariable("RASTERPREVIEW", );
doc.SetVariable("BACKGROUNDPLOT", );
doc.ActiveLayout.ConfigName = "PublishToWeb JPG.pc3";
doc.ActiveLayout.UseStandardScale = true;
doc.ActiveLayout.StandardScale = AcPlotScale.acScaleToFit;
doc.ActiveLayout.PlotType = AcPlotType.acExtents;
doc.ActiveLayout.CenterPlot = true;
doc.ActiveLayout.PlotRotation = AcPlotRotation.ac0degrees;
doc.ActiveLayout.PlotType = Autodesk.AutoCAD.Interop.Common.AcPlotType.acExtents;
doc.Plot.QuietErrorMode = true;
destPath = Path.Combine(pFile.Directory.FullName, Path.GetFileNameWithoutExtension(pFile.Name) + ".jpg");
doc.Plot.PlotToFile(destPath, "PublishToWeb JPG.pc3"); }
catch (System.Exception e)
{
return false;
}
finally
{
if (doc != null) doc.Close(false);
}

在全部处理完成后需要关闭CAD应用:

#region 关闭CAD程序
try
{
_app.Quit();
}
catch (Exception ex)
{
return;
}
#endregion

C# CAD批量转换为图片的更多相关文章

  1. 分享:Svg文件转换为图片(调用 Inkscape 命令行)

    其实只是做了简单封装,可以方便进行批量转换. 获取Svg对象坐标的代码请看:根据svg节点对象类型和路径值转换坐标值, DrawingColor方法是进行颜色填充的. /// <summary& ...

  2. 如果把PNG、JPG、BMP和GIF文件批量转换为ICO文件?

    有时候需要将大量的图片文件(比如PNG.JPG.BMP和GIF文件)批量转换为ICO图标文件,如果一个一个操作,非常费时间.本文将介绍如何用Dr. Folder软件快速批量转换图片文件为ICO图标文件 ...

  3. 使用IMAGEMAGICK的CONVERT工具批量转换图片格式

    使用IMAGEMAGICK的CONVERT工具批量转换图片格式 http://www.qiansw.com/linux-imagemagick-convert-img.html Home > 文 ...

  4. 个人永久性免费-Excel催化剂功能第89波-批量多图片转PDF

    前一篇展示了从PDF中提取到有用信息如图片.文本.表格等功能,部分人可能对自己手中的转PDF格式的保护性有所顾虑,此篇从反向角度,提供数据保护作用,让PDF文件的数据保护更彻底,让文本型的PDF文件彻 ...

  5. 【VBA】批量插入图片

    解决如下问题: 需要批量导入图片到Excel 图片放在一个文件夹中 图片有严格的顺序关系,即按照:共通名_编号的方式命名. 图片格式统一,即均为同一格式. 有两种方式可以插入图片到Excel中,其一为 ...

  6. Linux中如何使用gThumb批量调整图片大小

    Linux中如何使用gThumb批量调整图片大小 导读 如果你的工作涉及到图片编辑和处理,就一定会有同时对多张图片进行批量大小调整的经历.虽然大多数图片编辑应用都能够非常容易地批量调整多张图片,但对于 ...

  7. 使用Adobe Photoshop CC 2015批量修改图片尺寸

    最近在工作中遇到一个问题,当时客户给的图片尺寸与我要求的图片不符,由于图片非常的多,如果一张一张的修改,十分的麻烦,后来经过一位同事的指点,发现Adobe Photoshop CC 2015可以实现批 ...

  8. ps批量修改图片

    批量更改图片尺寸的ps脚本 高端干货!PHOTOSHOP实用脚本大合集

  9. java批量转换图片格式

    废话不多直接上代码,代码其实也不多.... package com.qiao.testImage; import java.awt.image.BufferedImage; import java.i ...

随机推荐

  1. Hyperledger Fabric、Corda和以太坊对比

     Hyperledger Fabric . Corda 和以太坊的对比 三种不同的框架 我们从 Hyperledger Fabric.R3 Corda和以太坊的白皮书中可以看到,三种框架在可能的应用领 ...

  2. bash语法

    国际惯例打印hello world   echo "hello world"   该程序运行结果: hello world 1.变量:   a=;b="hello wor ...

  3. SQL优化 MySQL版 - B树索引详讲

    SQL优化 MySQL版  - -B树索引详讲 作者:Stanley 罗昊 [转载请注明出处和署名,谢谢!] 为什么要进行SQL优化呢?很显然,当我们去写sql语句时: 1会发现性能低 2.执行时间太 ...

  4. css基础系列

    盒子模型 盒子模型的概念 高和宽的设置 边框的设置 内边距的设置 外边距的设置 盒子的计算 元素显示的方式 盒子模型: border边框,margin外边距,padding内部距,content内容, ...

  5. HTML 练习拖动面板

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. 供应链管理为什么要上企业自主可控的免费开源ERP Odoo

    引言 今天的很多企业,无论是制造业,还是商贸行业,如果说没有针对供应链管理的信息系统,那可能是真的冤枉他们了:采购.仓存.销售.存货核算这些模块,早早的买来,早早的用上了,但也早早的被下了结论:食之无 ...

  7. [Android 除錯] Conflict with dependency

    Android Studio build 時的錯誤訊息 : Conflict with dependency 詳細錯誤訊息 : Conflict with dependency 'com.androi ...

  8. ORM(三)QuerySet查询字段操作

    这里的环境还是用上次的环境: Django项目:orm_practice app/models.py中有如下几个类: models.py publishing表内容如下: pid name 1 机械工 ...

  9. mybatis的时间比较 xml 及不解析<=的写法

    <if test="type ==1"> and DATE_FORMAT(create_date,'%Y-%m-%d') = DATE_FORMAT(now(),'%Y ...

  10. 连表查询都用Left Join吧

    最近看同事的代码,SQL连表查询的时候很多时候用的是Inner Join,而我觉得对我们的业务而言,99.9%都应该使用Left Join(还有0.1%我不知道在哪),我用最简单的方式来描述这两者的区 ...