static RibbonBuilder() { // Загрузка настроек ленты ribbonOptions = FileDataExt.GetLocalFileData <RibbonOptions>("Ribbon", "RibbonOptions", false); ribbonOptions.TryLoad(); if (ribbonOptions.Data == null) { ribbonOptions.Data = new RibbonOptions(); } else { ribbonOptions.Data.Tabs = ribbonOptions.Data.Tabs.OrderBy(o => o.Index).ToList(); } }
public static void PromptAndPlot([NotNull] Document doc) { var ed = doc.Editor; var plotOptData = FileDataExt.GetLocalFileData <PlotOptions>("PlotToPdf", "PlotOptions", false); plotOptData.TryLoad(() => new PlotOptions()); var plotOpt = plotOptData.Data; var repeat = false; do { var optPrompt = new PromptKeywordOptions($"\nПечать листов в PDF из:"); optPrompt.Keywords.Add("Текущего"); optPrompt.Keywords.Add("Папки"); optPrompt.Keywords.Add("Настройки"); optPrompt.Keywords.Default = plotOpt.DefaultPlotCurOrFolder ? "Текущего" : "Папки"; var resPrompt = ed.GetKeywords(optPrompt); if (resPrompt.Status == PromptStatus.OK) { if (resPrompt.StringResult == "Текущего") { repeat = false; Logger.Log.Info("Текущего"); if (!File.Exists(doc.Name)) { throw new Exception("Нужно сохранить текущий чертеж."); } var filePdfName = Path.Combine(Path.GetDirectoryName(doc.Name) ?? throw new InvalidOperationException(), Path.GetFileNameWithoutExtension(doc.Name) + ".pdf"); var plotter = new PlotDirToPdf(new[] { doc.Name }, filePdfName) { Options = plotOpt }; plotter.Plot(); } else if (resPrompt.StringResult == "Папки") { repeat = false; Logger.Log.Info("Папки"); var dialog = new AcadLib.UI.FileFolderDialog { Dialog = { Multiselect = true }, IsFolderDialog = true }; dialog.Dialog.Title = @"Выбор папки или файлов для печати чертежей в PDF."; dialog.Dialog.Filter = @"Чертежи|*.dwg"; dialog.Dialog.InitialDirectory = Path.GetDirectoryName(doc.Name); if (dialog.ShowDialog() == DialogResult.OK) { PlotDirToPdf plotter; var firstFileNameWoExt = Path.GetFileNameWithoutExtension(dialog.Dialog.FileNames.First()); if (dialog.Dialog.FileNames.Length > 1) { plotter = new PlotDirToPdf(dialog.Dialog.FileNames, Path.GetFileName(dialog.SelectedPath)); } else if (firstFileNameWoExt != null && firstFileNameWoExt.Equals("п", StringComparison.OrdinalIgnoreCase)) { plotter = new PlotDirToPdf(dialog.SelectedPath, plotOpt.IncludeSubdirs); } else { plotter = new PlotDirToPdf(dialog.Dialog.FileNames, firstFileNameWoExt); } plotter.Options = plotOpt; plotter.Plot(); } } else if (resPrompt.StringResult == "Настройки") { // Сортировка; Все файлы в один пдф или для каждого файла отдельная пдф var plotOptVm = new PlotOptionsVM(plotOpt); var plotOptView = new PlotOptionsView(plotOptVm); if (Autodesk.AutoCAD.ApplicationServices.Application.ShowModalWindow(plotOptView) == true) { plotOptData.TrySave(); } repeat = true; } } else { ed.WriteMessage("\nОтменено пользователем."); return; } }while (repeat); }