乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 22|回复: 0

[原创]C#.net下模拟AutoCAD Print实现dwg转换为pdf

[复制链接]
ava

2

主题

2

帖子

2

银币

初来乍到

Rank: 1

铜币
10
发表于 2007-2-16 14:26:00 | 显示全部楼层 |阅读模式
这个功能的实现并不复杂,但对非从事二次开发的开发人员而言还是比较麻烦的,我就走了很大的弯路,研究了半天ObjectARX,在此感谢QQ名为“甘泉”的Q友指点。
实现原理:调用COM API
1、AutoCAD Print设置:
  1-1、安装AutoCAD 2006、Adobe Acrobat Profesional 7.0,安装Acrobat后会新增一个“Adobe PDF”系统打印机
  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”取消;
  1-3、选择打印,打印对话框中:设置“打印机/绘图仪器—名称”为“Adobe PDF.pc3”,设置“图纸尺寸”为“A4”,设置“打印范围”为“范围”;点“确定”即可将当前dwg文件打印为pdf文件;
2、C#.net代码编写(Visual Studio.nt 2003):
  2-1:添加COM引用:AutoCAD 2006 Type Library;AutoCAD/ObjectDBX Common 16.0 Type Library
  2-2:测试代码如下:
           string flname = "1001.dwg";                                                                                        //定义文件名
           string flpath = "C:\\Documents and Settings\\Administrator\\My Documents\\";            //定义文件目录
           string fuflname = flpath + flname;                                                                                //定义文件全路径名
           AcadDocumentClass AcdDoc = new AcadDocumentClass();
           AcadDocument docu = AcdDoc.Application.Documents.Open(fuflname, true, null);   //以只读方式打开该文件
           docu.ActiveLayout.ConfigName = "Adobe PDF.pc3";                                                  //定义打印机
           docu.ActiveLayout.CanonicalMediaName = "A4";                                                        //定义打印纸张
           docu.ActiveLayout.PlotType = Autodesk.AutoCAD.Interop.Common.AcPlotType.acExtents; //定义打印范围
           docu.Plot.PlotToDevice(null);                                                                                      //发送打印命令
           docu.Close(null, null);                                                                                                  //关闭文件

以上测试通过,但还是有个小小的问题,在打开指定文档时,会同时打开一份空文档,虽然在最后会与指定文档一起被关闭,但总觉得是个问题。有哪位高人指点一二?
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 07:12 , Processed in 1.034769 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表