`
lzl836
  • 浏览: 13843 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

C#利用AutoCad将dwg批量转换为pdf

    博客分类:
  • .net
 
阅读更多

最近做一个项目,要求将dwg文件转化为pdf,开发工具VS2010 + AutoCad 2011,

在网上查了很多代码都有各种问题,解决重重的问题,终于实现了批量转化。

 

1.首先引入com组件

AutoCAD 2011 Type Library

AutoCAD/ObjectDBX Common18.0 Type Library

2.创建/获取CAD实例

 

private static AcadApplication _app = null;

        private static void Initialization()
        {            
            string programID = "AutoCAD.Application.18.1";
            try
            {
                //如果CAD已经打开,就直接获取
                _app = (AcadApplication)Marshal.GetActiveObject(programID);
            }
            catch
            {
                try
                {
                   //创建新的实例
                    _app = (AcadApplication)new AcadDocument().Application;                
                }
                catch
                {
                    throw;
                }
            }
        }

 

 

关于AutoCAD2011对应的版本是AutoCAD.Application.18.1

关于创建CAD实例的方法,网上流传的版本是

app = new AcadApplication();

app = new AcadApplicationClass();

经过测试上述两种方法对于AutoCad 2011都报错。。

所以采取了_app = (AcadApplication)new AcadDocument().Application;

3.dwg批量转换成pdf

 

        public static void Dwg2Pdf(IEnumerable<FileInfo> files)
        {
            Initialization();
            
            AcadDocument doc = null;
            string destPath = string.Empty;
            try
            {
                foreach (var f in files)
                {
                    doc = _app.Documents.Open(f.FullName,true);
                    doc.SetVariable("sdi", 0);
                    doc.SetVariable("Filedia", 0);
                    doc.SetVariable("RASTERPREVIEW", 1);
                    doc.SetVariable("BACKGROUNDPLOT", 0);
                    doc.ActiveLayout.ConfigName = _cfg.AUTOCAD_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(f.Directory.FullName, Path.GetFileNameWithoutExtension(f.Name) + ".pdf");
                    doc.Plot.PlotToFile(destPath);                    
                    if (doc != null) doc.Close(false);
                }
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                try
                {
                    doc.Close(false);
                    _app.Quit();
                }
                catch { }
            }
        }

 需要注意几点

1.doc.SetVariable("BACKGROUNDPLOT", 0);一定要设置为0,否则只能转换第一个文件,第二个文件就报错。

2.doc.ActiveLayout.ConfigName不同版本的CAD都不一样,有的是DWGtoPDF.pc3也有的是DWG to PDF.pc3

 

 

 

分享到:
评论

相关推荐

    无需AUTOCAD,即可将dwg文件转换成为pdf

    标题和描述中提到的“无需AUTOCAD,即可将dwg文件转换成为pdf”是一种解决方案,它提供了一种快捷方便的方法来将DWG文件转换为PDF格式,这是一种广泛接受的、易于分发和查看的格式。 PDF(Portable Document Format...

    将cad文件批量输出为PDF

    本文将详细介绍如何使用Python编程语言和pyautocad库将CAD文件批量转换为PDF格式。 首先,pyautocad是Python的一个第三方库,它允许开发者通过Python与AutoCAD进行交互,实现对DWG(AutoCAD图形数据格式)文件的...

    c# dwg文件批量转pdf核心源码

    autocad2010版本,c#,cad com组件,dwg文件批量转pdf核心源码,

    Excel.Doc.Dwg批量转PDF(请测试)

    标题“Excel.Doc.Dwg批量转PDF(请测试)”和描述“Excel.Doc.Dwg批量转CAD 转换材料清单、杆位明细表等为pdf”指出,这个压缩包文件包含了一种工具或方法,用于将特定类型的文件——Excel电子表格、Word文档和DWG...

    C#实现Cad打印到Pdf

    通过本教程,您将学会如何利用 C# 和 AutoCAD Interop 组件将 CAD 图纸转换成 PDF 文件。 #### 技术背景 本示例代码基于以下技术栈: - **语言**:C# - **AutoCAD Interop**:用于与 AutoCAD 应用程序交互的 .NET ...

    DWG文件批量转PDF

    标题中的“DWG文件批量转PDF”指的是将多个DWG(AutoCAD图形设计软件的默认文件格式)文件一次性转换为PDF(便携式文档格式)的过程。这种转换在需要共享或打印CAD设计时非常有用,因为PDF文件可以跨平台查看且保持...

    DWG图纸转PDF文件

    根据给定的信息,本文将详细解析如何利用Java技术将AutoCAD的DWG图纸转换为PDF文件格式,并深入探讨实现这一转换的关键步骤和技术细节。 ### 一、DWG图纸与PDF文件的基本概念 #### 1.1 DWG图纸简介 DWG是一种由...

    将DWG转换为pdf的dll文件

    然而,不是每个人都拥有AutoCAD来打开或查看DWG文件,这就是为什么转换为PDF变得必要。PDF(Portable Document Format)是一种跨平台的文件格式,能够保持原始文档的布局和质量,便于阅读和分发,无需特定的软件。 ...

    PDF文档打印机,DWG格式转化JPG

    PDF打印机是一种虚拟设备,它允许用户将任何可打印文档转化为PDF格式,而DWG则是AutoCAD软件用于存储二维和三维绘图的数据格式。下面我们将详细探讨这些知识点。 首先,PDF(Portable Document Format)是一种广泛...

    PDF2DWG-SA

    2. **支持批处理**:用户可以一次性上传多个PDF文件,批量转换为DWG格式,极大地提高了工作效率。 3. **保留原始布局和图层**:在转换过程中,PDF2DWG-SA会尽可能地保留原PDF文件中的图层结构,使得转换后的DWG文件...

    deskDOC DWG to PDF Professional

    "deskDOC DWG to PDF Professional"的一个显著特点是其批量转换功能。用户可以一次性上传多个文件进行转换,极大地提高了工作效率,减少了手动操作的时间和精力。这对于处理大量CAD文件的专业人士来说是一个巨大的...

    批量生产DWG和PDF_solidworks二次开发_批量生成DWG和PDF_

    然而,当需要将这些工程图转换为行业标准的DWG格式(AutoCAD的文件格式)或通用的PDF格式时,手动操作会变得耗时且易出错。因此,通过二次开发实现批量转换成为了必要。 批量生成DWG和PDF的过程涉及以下几个关键...

    autocad .Net

    AutoCAD .NET是Autodesk公司开发的一套编程接口,它允许开发者使用.NET Framework的语言,如C#、VB.NET等,来扩展和定制...通过学习和实践这些示例,你将能够掌握如何利用.NET来定制AutoCAD,提升你的设计和开发能力。

    AUTOCAD_VBA开发手册_郑立楷

    - 将AutoCAD图形导出为其他文件格式,如PDF、DWG等,对于分享和存档非常重要。 #### 第四章 创建和编辑AutoCAD图元 - **创建对象** - 创建AutoCAD图元是使用VBA的基本操作之一。通过调用相应的方法可以创建直线...

    CAD地形图高程信息快速提取的技术与实现.pdf

    通过结合使用*** API和ArcEngine,可以在AutoCAD软件平台上开发出一个用户友好的操作面板,实现CAD地形图中高程信息的快速批量提取,并将其转换为GIS支持的格式。 ### 结论 通过应用*** API和ArcEngine组件,可以...

    cadlib2.1的二次开发

    在本话题中,我们聚焦于“cadlib2.1的二次开发”,这通常指的是利用Cadlib库对AutoCAD或其他CAD软件进行扩展。Cadlib是一个用于.NET Framework的强大的DWG和DXF文件处理库,支持读写、编辑和转换CAD数据。 DXF...

Global site tag (gtag.js) - Google Analytics