[原创]C#.net下模拟AutoCAD Print实现dwg转换为pdf
本帖最后由 作者 于 2007-2-16 14:30:40 编辑 <br /><br /> <p>这个功能的实现并不复杂,但对非从事AutoCAD二次开发的开发人员而言还是比较麻烦的,我就走了很大的弯路,研究了半天ObjectARX,在此感谢QQ名为“甘泉”的Q友指点。<br/></p><p>实现原理:调用COM API<br/>1、AutoCAD Print设置:<br/> 1-1、安装AutoCAD 2006、Adobe Acrobat Profesional 7.0,安装Acrobat后会新增一个“Adobe PDF”系统打印机<br/> 1-2、添加“Adobe PDF”系统打印机为绘图仪(如命名为“Adobe PDF.pc3”);在“添加绘图仪—完成”步骤选择“编辑绘图仪配置”,在“设备和文档设置”分页选择“图形”下的“自定义特性”;在“Adobe PDF Settings”分页:设置“Adobe PDF Output Folder”为“My Documents\*.pdf”(注:或选择其他目录,此处定义dwg),设置“Adobe PDF Page Size”为“A4”,“View Adobe PDF results”取消,“Add Document Information”取消;<br/> 1-3、选择打印,打印对话框中:设置“打印机/绘图仪器—名称”为“Adobe PDF.pc3”,设置“图纸尺寸”为“A4”,设置“打印范围”为“范围”;点“确定”即可将当前dwg文件打印为pdf文件;<br/>2、C#.net代码编写(Visual Studio.nt 2003):<br/> 2-1:添加COM引用:AutoCAD 2006 Type Library;AutoCAD/ObjectDBX Common 16.0 Type Library<br/> 2-2:测试代码如下:<br/> string flname = "1001.dwg"; //定义文件名<br/> string flpath = "C:\\Documents and Settings\\Administrator\\My Documents\\"; //定义文件目录<br/> string fuflname = flpath + flname; //定义文件全路径名<br/> AcadDocumentClass AcdDoc = new AcadDocumentClass();<br/> AcadDocument docu = AcdDoc.Application.Documents.Open(fuflname, true, null); //以只读方式打开该文件<br/> docu.ActiveLayout.ConfigName = "Adobe PDF.pc3"; //定义打印机<br/> docu.ActiveLayout.CanonicalMediaName = "A4"; //定义打印纸张<br/> docu.ActiveLayout.PlotType = Autodesk.AutoCAD.Interop.Common.AcPlotType.acExtents; //定义打印范围<br/> docu.Plot.PlotToDevice(null); //发送打印命令<br/> docu.Close(null, null); //关闭文件</p><p> </p><p>以上测试通过,但还是有个小小的问题,在打开指定文档时,会同时打开一份空文档,虽然在最后会与指定文档一起被关闭,但总觉得是个问题。有哪位高人指点一二?</p>
页:
[1]