通过C#实现中望CAD的运行中静默打印PDF功能。可以自定义具体打印设备名称、纸张类型、打印样式表、打印范围、着色打印类型等;将using中的“ZwSoft.ZwCAD”改为“Autodesk.AutoCAD”可以应用在AutoCAD开发中。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZwSoft.ZwCAD.ApplicationServices;
using ZwSoft.ZwCAD.DatabaseServices;
using ZwSoft.ZwCAD.PlottingServices;
using ZwSoft.ZwCAD.Runtime;namespace ZWCADTest_48
{public class PrintTest{[CommandMethod("PrintToPDF")]public void PrintToPDF(){Document acDoc = Application.DocumentManager.MdiActiveDocument;Database acDb = acDoc.Database;// 打印结果文件的输出路径string outputName = @"D:\CAD\PrintPDF\MyFile.pdf";// 打印机名称:ZWCAD PDF(High Quality Print).pc5string deviceName = "ZWCAD PDF(High Quality Print).pc5";// 纸张:"ISO_full_bleed_A0_(841.00_x_1189.00_MM)"string canonicalMediaName = "ISO_full_bleed_A0_(841.00_x_1189.00_MM)";// 打印样式表:zwcad.ctbstring styleSheetName = "zwcad.ctb";// PlotSettings.PlotType 打印范围:范围 Extents// PlotSettings.ShadePlot 着色打印:按显示 AsDisplayed  using (Transaction tr = acDb.TransactionManager.StartTransaction()){// 获取打印机配置PlotConfig plotConfig = PlotConfigManager.SetCurrentConfig(deviceName);plotConfig.RefreshMediaNameList();// 将打印机的PlotToFile属性设置为trueplotConfig.IsPlotToFile = true;PlotSettings plotSettings = new PlotSettings(true);PlotSettingsValidator plotSettingsValidator = PlotSettingsValidator.Current;// 配置打印设置和打印信息plotSettingsValidator.SetUseStandardScale(plotSettings, true);plotSettingsValidator.SetStdScaleType(plotSettings, StdScaleType.ScaleToFit);plotSettingsValidator.SetPlotCentered(plotSettings, true);plotSettingsValidator.SetPlotRotation(plotSettings, PlotRotation.Degrees000);// 设置设备名称和图纸名称plotSettingsValidator.SetPlotConfigurationName(plotSettings, deviceName, canonicalMediaName);// 设置打印样式表plotSettingsValidator.SetCurrentStyleSheet(plotSettings, styleSheetName);// 设置打印范围plotSettingsValidator.SetPlotType(plotSettings, ZwSoft.ZwCAD.DatabaseServices.PlotType.Extents);// 设置着色打印选项plotSettings.ShadePlot = PlotSettingsShadePlotType.AsDisplayed;//验证打印信息PlotInfoPlotInfoValidator plotInfoValidator = new PlotInfoValidator();PlotInfo plotInfo = new PlotInfo();LayoutManager manager = LayoutManager.Current;Layout layout = tr.GetObject(manager.GetLayoutId(manager.CurrentLayout), OpenMode.ForRead) as Layout;plotInfo.Layout = layout.ObjectId;plotInfo.OverrideSettings = plotSettings;plotInfo.DeviceOverride = plotConfig;plotInfo.ValidatedConfig = plotConfig;plotInfoValidator.MediaMatchingPolicy = MatchingPolicy.MatchEnabled;plotInfoValidator.Validate(plotInfo);// 使用PlotEngine对象开始打印using (PlotEngine plotEngine = PlotFactory.CreatePublishEngine()){// 执行打印操作plotEngine.BeginPlot(null, null);plotEngine.BeginDocument(plotInfo, acDoc.Name, null, 1, true, outputName);PlotPageInfo pageInfo = new PlotPageInfo();plotEngine.BeginPage(pageInfo, plotInfo, true, null);plotEngine.BeginGenerateGraphics(null);plotEngine.EndGenerateGraphics(null);plotEngine.EndPage(null);plotEngine.EndDocument(null);plotEngine.EndPlot(null);}}}}
}

C# 中望CAD(AutoCAD 非Com方式)打印PDF相关推荐

  1. 使用PDF处理控件Aspose.PDF以编程方式打印PDF文档完整攻略

    许多公司在很大程度上减少了纸张的使用.但是,在某些情况下打印很重要.例如,系统可能包含PDF格式的在线订单的详细信息.他们需要在分发在线订单进行交付时打印PDF.他们大规模处理项目,因此手动打印每个文 ...

  2. 利用Aspose.PDF以编程方式打印PDF文档

    使用C#打印PDF文件 可以使用C#或VB.net在.NET应用程序中自动打印PDF文件.您可以按照以下简单步骤打印PDF文件: 创建一个PdfViewer类的对象 加载输入的PDF文档 打印PDF文 ...

  3. 中序遍历二叉树-非递归方式实现-附C++代码

    一.问题描述 给定一个二叉树,要求以非递归的方式进行中序遍历. 原题:二叉树的中序遍历 - leetcode 二.解题思路 首先需要知道一些前置知识:中序遍历是指按 左子树 -> 根节点 -&g ...

  4. 中望CAD图纸的单页和批量pdf打印方式

    1 单页打印 1.1 选择打印 1.2 选择pdf打印机,并点击选择打印区域 1.3 在窗口中框选打印区域 1.4 框选完毕,跳回到对话框.选择预览,或者直接确定. 1.5 点击"确定&qu ...

  5. 二叉树 —— 创建二叉树 先序遍历 、中序遍历、后序遍历(递归方式、非递归方式)

    #include<stdio.h> #include<malloc.h> #include<stdlib.h> typedef char DataType; #de ...

  6. 分别用递归和非递归方式实现二叉树先序、中序和后序遍历(java实现)

    分别用递归和非递归方式实现二叉树先序.中序和后序遍历 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点.我们约定:先序遍历顺序 为根.左.右;中序遍历顺序为左.根.右;后序遍历顺序为左 ...

  7. 算法练习day10——190328(二叉树的先序、 中序、 后序遍历, 包括递归方式和非递归方式、找到一个节点的后继节点、二叉树的序列化和反序列化)

    1.实现二叉树的先序. 中序. 后序遍历, 包括递归方式和非递归方式 1.1 访问节点的顺序 节点访问顺序如下图所示: 访问顺序:1 2 4 4 4 2 5 5 5 2 1 3 6 6 6 3 7 7 ...

  8. 左神算法:分别用递归和非递归方式实现二叉树先序、中序和后序遍历(Java版)

    本题来自左神<程序员代码面试指南>"分别用递归和非递归方式实现二叉树先序.中序和后序遍历"题目. 题目 用递归和非递归方式,分别按照二叉树先序.中序和后序打印所有的节点 ...

  9. AUTOCAD——调整十字光标、CAD表格文字对齐方式

    CAD如何调整十字光标? 执行方式 1.输入自定义设置命令"OPTIONS"(快捷键:OP),按下空格键. 自定义设置 2.在弹出的选项界面中,打开显示页面,选择页面中的" ...

最新文章

  1. [nRF51822] 8、基础实验代码解析大全 · 实验11 - PPI
  2. SRM598 Div1
  3. LeetCode_108.将有序数组转换为二叉搜索树
  4. (转)CXF学习笔记一:如何创建、发布和访问基于CXF的服务
  5. jsp页面提示“Multiple annotations found at this line: - The superclass javax.servlet.http.HttpServlet w
  6. xcode快速开发 代码块
  7. 轻松搞定个人虚拟桌面部署之1-远程桌面服务概述
  8. C# 获取对象 大小 Marshal.SizeOf (sizeof 只能在不安全的上下文中使用)
  9. c语言程序设计课件第二章,c语言程序设计课件张元国 ISBN9787566300386 PPT第二章数据类型 运算符与表达式...
  10. MATLAB2016下载地址,包含安装教程
  11. 初学者UI设计临摹素材模板,请先搞清楚这4个分类!
  12. fastapi 的启动方式
  13. matlab错误dparsfa,用dparsfa做功能连接时报错
  14. java素数判断1到100_Java 求1-100以内的所有素数,判断一个数是不是素数
  15. 连接树莓派后斐讯k2路由cpu占用100%
  16. 抖音上很火的 立方体相册和旋转时钟,基于人脸识别实现程序员的专属相册和专属时钟,包含15套相册模板和9套时钟风格,可以直接替换成自己的图片,部署生成自己的个性化专属相册
  17. 电子线路与电磁干扰/电磁兼容设计分析
  18. Quora的技术探索
  19. 安卓实例04-3:通过Intent使讯飞与tasker通讯作为语音助手
  20. 一个“小把戏”“哄得”小朋友挺满意

热门文章

  1. unity 多个数据存储和读取工具
  2. 小狼毫Rime输入法简单配置指南
  3. centos7.9配置本地yum源、关闭防火墙及SElinux
  4. 好车那么多,别急着买哈弗H6?买不买H6看完再决定
  5. 进制之间的12种转换
  6. data hide urls_HTTP 的 Data URLs
  7. confluence 编辑器这次没有加载_介绍10款平时项目里使用比较多的在线编辑器,有需要可以收藏起来
  8. 一个应用实例详解卡尔曼滤波及其算法实现(通俗易懂哦)
  9. 华为电脑Linux怎么恢复出厂设置,华为MateBook笔记本怎么恢复出厂设置还原系统?详细教程...
  10. Beats:使用 fingerprint 来连接 Beats/Logstash 和 Elasticsearch