03/05/2017
Как получить список доступных плоттеров/форматов в AutoCAD?
Вопрос: Как получить список доступных плоттеров в AutoCAD и список канонических имён форматов для каждого из доступных плоттеров?
Ответ: Для получения списка доступных плоттеров нужно воспользоваться методом PlotSettingsValidator.GetPlotDeviceList, а для получения канонических имён форматов – PlotSettingsValidator.GetCanonicalMediaNameList
Ниже пример того, как можно выбрать только плоттеры, в имени которых есть строка «PDF», и получить список канонических имён их форматов:
Код - C#: [Выделить]
- using Autodesk.AutoCAD.Runtime;
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.DatabaseServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Internal;
- [assembly: CommandClass(typeof(Rivilis.Plotters))]
- namespace Rivilis
- {
- public class Plotters
- {
- [CommandMethod("GetCanonicalNames")]
- public void GetCanonicalNames()
- {
- Document doc = Application.DocumentManager.MdiActiveDocument;
- if (doc == null) return;
- Editor ed = doc.Editor;
- PlotSettingsValidator psv = PlotSettingsValidator.Current;
- using (PlotSettings settings = new PlotSettings(true))
- {
- foreach (string plotterDevice in psv.GetPlotDeviceList())
- {
- // Нас будут интересовать только плоттеры,
- // в имени которых есть строка PDF
- if (Utils.WcMatchEx(plotterDevice,"*pdf*",true))
- {
- ed.WriteMessage("\nПлоттер: \'{0}\'", plotterDevice);
- psv.SetPlotConfigurationName(settings, plotterDevice, null);
- psv.RefreshLists(settings);
- foreach (string canonocalName in psv.GetCanonicalMediaNameList(settings))
- {
- ed.WriteMessage("\n Каноническое имя: \'{0}\'", canonocalName);
- }
- }
- }
- }
- }
- }
- }
Результат работы:
Автор: Александр Ривилис
Отредактировано 03.05.2017 в 16:11:00
Обсуждение: http://adn-cis.org/forum/index.php?topic=7774
Опубликовано 03.05.2017Отредактировано 03.05.2017 в 16:11:00