Формат бумаги и единицы измерения
Выбор размера (формата) бумаги зависит от используемого для вывода устройства или плоттера. Каждое устройство имеет свой стандартный список доступных форматов бумаги, который можно получить с помощью метода GetCanonicalMediaNameList у класса PlotSettingsValidator (получается через статическое поля класса Current). Другой метод GetLocaleMediaName можно использовать для отображения локализованного наименования формата, какой доступен в диалоговых окнах со стороны UI. Формат бумаги, назначенный листу можно запросить с помощью свойства CanonicalMediaName у объекта Layout.
Вы также можете получить единицы измерения листа с помощью свойства PlotPaperUnits. Это свойство возвращает одно из трех значений, определенных перечислением PlotPaperUnit: дюймы, миллиметры или пиксели. Если ваше устройство печати настроено для растрового вывода, размер вывода будет возвращен в пикселях. Задать единицы измерения можно с помощью метода SetPlotPaperUnits класса PlotSettingsValidator.
В примере ниже показывается размеров бумаги для конфигурации "DWF6 ePlot.pc3"
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.PlottingServices;
// Lists the available local media names for a specified plot configuration (PC3) file
[CommandMethod("PlotterLocalMediaNameList")]
public static void PlotterLocalMediaNameList()
{
// Get the current document and database, and start a transaction
Document acDoc = Application.DocumentManager.MdiActiveDocument;
using(PlotSettings plSet = new PlotSettings(true))
{
PlotSettingsValidator acPlSetVdr = PlotSettingsValidator.Current;
// Set the Plotter and page size
acPlSetVdr.SetPlotConfigurationName(plSet, "DWF6 ePlot.pc3",
"ANSI_A_(8.50_x_11.00_Inches)");
acDoc.Editor.WriteMessage("\nCanonical and Local media names: ");
int cnt = 0;
foreach (string mediaName in acPlSetVdr.GetCanonicalMediaNameList(plSet))
{
// Output the names of the available media for the specified device
acDoc.Editor.WriteMessage("\n " + mediaName + " | " +
acPlSetVdr.GetLocaleMediaName(plSet, cnt));
cnt = cnt + 1;
}
}
}