Назначение устройства печати для AutoCAD (NanoCAD)
Код ниже позволяет для NanoCAD (*как AutoCAD) назначить для всех Листов (пространство листа) устройство печати "Встроенный PDF-принтер", сохранив имеющийся в настройках размер бумаги. Подскажите пожалуйста как добавить в этот код аналогично назначение плоттера "Встроенный PDF-принтер" (сохранив имеющийся в настройках размер бумаги) НО ДЛЯ Пространства Модели?
namespace PrintDocument
{
public partial class PlotDocument
{
[Teigha.Runtime.CommandMethod("PlotDocument")]
public void PrintDocument()
{
// Получение ссылки на активный документ
HostMgd.ApplicationServices.Document doc = HostMgd.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
nanoCAD.Document comDoc = doc.AcadDocument as nanoCAD.Document;
// Получение ссылки на редактор активного документа
HostMgd.EditorInput.Editor ed = doc.Editor;
// Получение ссылки на активный лист документа
OdaX.AcadLayout activeLayout = comDoc.ActiveLayout;
// Получение ссылки на свойство Plot активного документа
nanoCAD.Plot plot = (nanoCAD.Plot)comDoc.Plot;
try
{
// Назначение всем листам документа
foreach (OdaX.IAcadLayout layout in comDoc.Layouts)
{
// Получение ссылки на расширенные настройки печати
nanoCAD.InanoCADPlotCustomParams customPlotSettings = plot.CustomPlotSettings[layout];
string plotsize = layout.CanonicalMediaName;
// Вывод в консоль настроек до изменения
ed.WriteMessage("");
ed.WriteMessage("before: {0}:{1},{2},{3}", layout.Name, layout.ConfigName, layout.CanonicalMediaName, layout.PlotType);
// Назначение активному листу встроенного pdf-принтера
layout.ConfigName = "Встроенный PDF-принтер";
// Назначение активному листу имеющегося формата бумаги
layout.CanonicalMediaName = plotsize;
// Передаем измененные пользовательские настройки в лист
plot.CustomPlotSettings[layout] = customPlotSettings;
// Вывод в консоль настроек после изменения
ed.WriteMessage("after: {0}:{1},{2},{3}", layout.Name, layout.ConfigName, layout.CanonicalMediaName, layout.PlotType);
ed.WriteMessage("------------------------------------------------------------");
}
// Сообщение пользователю
ed.WriteMessage("Все Листы были установлены для печати на 'Встроенный PDF-принтер'");
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
// Сообщение пользователю
ed.WriteMessage("Все Листы были установлены для печати на 'Встроенный PDF-принтер'");
}
}
}
}