C# CAD 框选pdf输出

这篇具有很好参考价值的文章主要介绍了C# CAD 框选pdf输出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在C#中进行AutoCAD二次开发时,实现框选(窗口选择)实体并输出这些实体到PDF文件通常涉及以下步骤:

public ObjectIdCollection GetSelectedEntities()
{
    using (var acTrans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
    {
        var selSet = new SelectionSet();
        Document.Editor.PickObjects(PickObjectMode CrossingWindows, "请选择要输出的对象:", selSet);
        
        ObjectIdCollection ids = new ObjectIdCollection();
        foreach (ObjectId id in selSet.GetObjectIds())
        {
            ids.Add(id);
        }
        return ids;
    }
}

2. **导出到PDF**:
   AutoCAD本身并不直接提供将选定实体导出为PDF的功能。通常需要借助第三方库或者AutoCAD自身的布局(Layouts)功能配合打印命令将内容输出到PDF打印机。

使用`.NET`环境下的第三方库如`Autodesk.AutoCAD.PlottingServices`可以创建一个PDF打印作业,并设置其输出范围为选定的实体所在的布局。文章来源地址https://www.toymoban.com/news/detail-831120.html

using Autodesk.AutoCAD.PlottingServices;
using Autodesk.AutoCAD.DatabaseServices;

public void ExportToPdf(ObjectIdCollection entityIds)
{
    using (var acTrans = HostApplicationServices.WorkingDatabase.TransactionManager.StartTransaction())
    {
        // 获取PlotterService
        Plotter plotter = Plotter.GetPlotter();
        
        // 创建新的打印配置
        PublishOptions acadPubOpts = new PublishOptions();
        acadPubOpts.SetDefaultPublishJobSettings(true);
        acadPubOpts.ExportFormat = PublishFormat.PDF;
        
        // 选择一个布局或模型空间作为输出来源
        Layout layout = acTrans.GetObject(Layout.ModelSpace.Id, OpenMode.ForRead) as Layout;
        if (entityIds.Count > 0)
        {
            // 如果有实体ID,可能需要创建临时布局以包含选定实体
            // 并将实体复制到该布局,然后使用这个布局进行打印
            // 这部分根据具体需求和实现方式会有所不同
        }

        // 设置输出路径等参数
        string pdfPath = @"C:\Output\MyDrawing.pdf";
        acadPubOpts.PublishDestinationFile.FullPath = pdfPath;
        
        // 创建并添加打印任务
        PublishJob pubJob = plotter.CreatePublishJob(acadPubOpts);
        pubJob.LayoutOrModel = layout.ObjectId;

        // 执行打印任务
        plotter.Execute(pubJob);

        ed.WriteMessage($"\n成功将选定实体导出至PDF: {pdfPath}");
    }
}

// 示例调用:
ObjectIdCollection selectedEntities = GetSelectedEntities();
ExportToPdf(selectedEntities);

到了这里,关于C# CAD 框选pdf输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【CAD二次开发】给CAD添加TRUSTEDPATHS避免dll插件信任弹窗

    找到配置文件目录,遍历下面的每个配置文件; 找到 Variables 下的 TRUSTEDPATHS 项目;在后面添加新的目录即可,多个目录使用分号分隔;

    2024年02月07日
    浏览(45)
  • QGIS二次开发:集成二维CAD控件MxDraw

    本文记录在QGIS中集成MxDraw控件的方法。 参见笔者博文“FreeCAD二次开发:集成二维CAD控件MxDraw”所述的安装方法。 参见笔者博文\\\"Windows 10下编译安装QGIS\\\"所述的编译安装方法。 按照QGIS的管理,Qt ui文件可放到src/ui目录及其子目录下。因此,可将MxDrawView.ui拷贝到src/ui/gd目录下,

    2024年02月15日
    浏览(37)
  • 2.ObjectArx .NET 二次开发入门(CAD 2016)

    愿你出走半生,归来仍是少年!  目录 1. 环境准备 1.1 ObjectArx .NET 1.2 VS安装  1.2.1 CAD与Visiul Studio版本对照  1.2.1 Visiul Studio2022关于.NET 4.5的处理 2.Hellow World 2.1新建项目 2.2加载依赖 2.3 编写第一个命令 2.4 生成、加载并测试         开发这事情,本着有新的肯定用新的思想,

    2024年02月11日
    浏览(34)
  • python-cad二次开发入门教程

    用python做cad二次开发已经快两年的时间了,今天看到群里一个哥们到处问怎么python怎么进行cad二次开发,不禁回想起当初自己找教程找的焦头烂额,却始终不得办法的辛酸。现在网上的教程逐渐多了起来,但是我看很多都没有直接讲一个问题,那就是“ 我到底怎么去二次开发

    2024年02月06日
    浏览(41)
  • CAD二次开发,安装程序中写注册表

    我们知道,dll加载到cad中后使用 就可以拿到当前cad的注册表,那么如果想在安装程序时写,此时并没有cad的环境,要怎么办呢? cad在安装后,会在注册表的 计算机HKEY_LOCAL_MACHINESOFTWAREAutodeskHardcopy 目录下存放所有已安装的cad的注册表位置 如图,由于我只安装了一个,所以

    2023年04月11日
    浏览(46)
  • 【CAD二次开发】重新加载acad.pgp快捷菜单文件

    为了加快绘图速度,好多人会进行CAD快捷命令的修改,那怎么在不需要重启CAD的情况下自动更新? CAD修改acad.pgp,快捷命令后,自动更新。 方法一 命令行输入reinit,命令。 在弹出的窗口中,选择‘PGP文件’,那么修改后的快捷命令将更新。 方法二 c#代码的方式

    2024年02月09日
    浏览(44)
  • 【ArcGIS Pro二次开发】(17):打开GDB、SHP、CAD等各种数据

    1、打开表格【Table】 2、打开要素类【FeatureClass】 3、以表格的形式打开一个要素类 这里虽然是以表格的形式打开,但是实际上它仍然是一个要素类,可以自由转换格式。 4、打开要素数据集【FeatureDataset】 需要注意的是,打开shp文件,可以带【.shp】的后缀,也可以不加。 如

    2023年04月21日
    浏览(68)
  • c# 根据CAD权籍数据的扩展属性,输出房地一体资料,申请表、审批表等

    c# 根据CAD权籍数据的扩展属性,输出房地一体资料,申请表、审批表等 using System; using System.Windows.Forms; using MSWord = Microsoft.Office.Interop.Word; using System.Runtime.InteropServices; using System.Reflection; using Autodesk.AutoCAD.DatabaseServices; using Autodesk.AutoCAD.EditorInput; using cadapp = Autodesk.AutoCAD.Applic

    2024年02月11日
    浏览(34)
  • 【ABAQUS 二次开发笔记】输出单元刚度矩阵

    我的主页: 技术邻:小铭的ABAQUS学习的技术邻主页 博客园 : HF_SO4的主页 哔哩哔哩:小铭的ABAQUS学习的个人空间 csdn:qgm1702 博客园文章链接: https://www.cnblogs.com/aksoam/p/17077587.html 此keyword用于将元素刚度矩阵和质量矩阵(如果可用)写入结果文件、用户定义文件或数据文件。

    2024年02月06日
    浏览(71)
  • Autocad C#二次开发煤矿数据处理

    2024年02月10日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包