Convert DWG or DFX file for AutoCAD to PDF in C#

      用C#实现DWG to PDF 或 DXF to PDF并不是一件容易的事,我分别尝试了借助AutoCAD的DWGtoPDF.pc3和使用第三方软件Aspose.CAD for .NET来实现此功能,结果都不完美,这里记录下实现方式以及优缺点对比,给需要的同学参考。

DWG to PDF

      DWGtoPDF.pc3

      DWGtoPDF.pc3是autocad中的DWG图纸文件打印成pdf文件的打印配置文件,这种方案是网络上广为流传的方案,我主要参考了C#利用AutoCad将dwg批量转换为pdf

        优点:免费。

        缺点:

        1. 必须要安装AutoCAD,在实现将DWG to PDF时,需要开启AutoCAD打开相应的DWG文件。

        2. 转换后的PDF丢失原图很多细节。

        用DWGtoPDF.pc3实现DWG to PDF的实现步骤如下:

        1. 安装任意一个版本的AutoCAD。我使用的版本是Visual Studio 2013 + AutoCAD2013。

        2. 在相应的C#工程中引用COM组件,以下两个组件引入后,在“引用”列表中的名称分别为AutoCAD和AXDBLib。

           AutoCAD 2013 Type Library

           AutoCAD/ObjectDBX Common19.0 Type Library

        3. 实现代码如下。与原参考文献相比,下面的代码删除了两句代码。

          doc.SetVariable(“RASTERPREVIEW”, 1);

          RASTERPREVIEW是一个系统变量,该变量的意义是控制BMP预览图像是否随图形一起保存,其初始值为:1,  保存预览图像;0,不保存预览图像。该语句加在VS2013的工程中编译会报错,因其默认值为1,删除此语句应该不影响整体效果。

          doc.ActiveLayout.PlotType = Autodesk.AutoCAD.Interop.Common.AcPlotType.acExtents;  

          AutoCAD2013的COM组件中不包含Autodesk.AutoCAD.Interop的命名空间,理由请参考Autodesk.AutoCAD.Interop missing

      Apose.CAD for .NET

     在NuGet上可以找到该组件的免费版本,该版本可以轻松并且完美的将DWG和DXF文件转换为PDF,而且不需要安装和开启AudoCAD。但是免费版本转换得到的PDF文件的左上角会有Aspose的版权LOGO,要想没有Logo,需要付费。Aspose官方网站上有大量的示例代码,这里就不搬运了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Fork me on GitHub