C# CAD2010 AcadApplication判断"DWG To PDF.pc3"打印机是否正在打印中
时间: 2023-12-10 11:42:06 浏览: 154
要判断“DWG To PDF.pc3”打印机是否正在打印中,可以使用AcadApplication对象的GetSystemVariable方法获取系统变量“DWGTITLED”。如果该变量的值为1,则表示当前有一个打印作业正在进行中。
示例代码如下:
```csharp
using Autodesk.AutoCAD.Interop;
// 获取AcadApplication对象
AcadApplication acadApp = (AcadApplication)System.Runtime.InteropServices.Marshal.GetActiveObject("AutoCAD.Application");
// 获取系统变量DWGTITLED的值
object dwgTitled = acadApp.GetSystemVariable("DWGTITLED");
if ((short)dwgTitled == 1)
{
// "DWG To PDF.pc3"打印机正在打印中
}
else
{
// "DWG To PDF.pc3"打印机没有正在打印中
}
```
需要注意的是,上述代码只能在AutoCAD环境中运行,如果要在外部应用程序中使用AutoCAD的COM接口,需要先将AutoCAD引用添加到项目中,并将“嵌入互操作类型”设置为“是”。
相关问题
C# CAD2010 AcadApplication判断"DWG To PDF.pc3"打印机是否正在打印
在C#中,我们可以使用`AcadApplication`对象的`GetSystemVariable`方法来获取AutoCAD系统变量的值。`PLOTJOBSTATUS`是一个AutoCAD系统变量,它存储了当前打印任务的状态。如果返回值为1,则表示有打印任务正在进行中。
以下是一个示例代码,可以判断“DWG To PDF.pc3”打印机是否正在打印:
```csharp
using Autodesk.AutoCAD.Interop;
namespace PrintStatus
{
class Program
{
static void Main(string[] args)
{
AcadApplication acad = new AcadApplication();
int jobStatus = (int)acad.GetSystemVariable("PLOTJOBSTATUS");
if (jobStatus == 1)
{
string plotDevice = (string)acad.GetSystemVariable("PLOTDEVICENAME");
if (plotDevice.Contains("DWG To PDF.pc3"))
{
Console.WriteLine("DWG To PDF.pc3 is being printed.");
}
else
{
Console.WriteLine("Another printer is being used.");
}
}
else
{
Console.WriteLine("No printing task found.");
}
Console.ReadLine();
}
}
}
```
注意,在使用`AcadApplication`对象之前,需要将AutoCAD COM组件添加到项目引用中。
帮我用C# 把DWG转换成PDF
可以使用Autodesk.AutoCAD.Interop和Autodesk.AutoCAD.Interop.Common命名空间来实现将DWG文件转换为PDF文件的功能。以下是代码示例:
```csharp
using Autodesk.AutoCAD.Interop;
using Autodesk.AutoCAD.Interop.Common;
public void ConvertDWGtoPDF(string dwgPath, string pdfPath)
{
// 创建AutoCAD应用程序对象
AcadApplication acadApp = new AcadApplication();
// 打开DWG文件
acadApp.Documents.Open(dwgPath);
// 获取当前文档对象
AcadDocument acadDoc = acadApp.ActiveDocument;
// 创建PDF布局对象
AcadLayout pdfLayout = acadDoc.Layouts.Add("PDFLayout");
// 设置PDF布局对象属性
pdfLayout.ConfigName = "DWG To PDF.pc3";
pdfLayout.CanonicalMediaName = "ISO_A4_(210.00_x_297.00_MM)";
pdfLayout.StandardScale = AcPlotScale.acScaleToFit;
pdfLayout.StyleSheet = "monochrome.ctb";
// 将PDF布局对象添加到当前文档对象中
acadDoc.ActiveLayout = pdfLayout;
// 保存PDF文件
acadDoc.Plot.PlotToFile(pdfPath, pdfLayout.ConfigName);
// 关闭文档
acadDoc.Close(false);
// 退出AutoCAD应用程序
acadApp.Quit();
}
```
其中,dwgPath参数指定需要转换的DWG文件路径,pdfPath参数指定生成的PDF文件路径。需要注意的是,在运行此代码之前,需要先安装AutoCAD软件并添加对应的COM引用。
阅读全文