Example #1
0
 public void PIK_PlotToPdf()
 {
     CommandStart.Start(doc =>
     {
         using (doc.LockDocument())
             PlotDirToPdf.PromptAndPlot(doc);
     });
 }
Example #2
0
        public void AKR_PlotPdf()
        {
            CommandStart.Start(doc =>
            {
                Editor ed = doc.Editor;
                CheckAcadVer2016();

                PlotOptions plotOpt = new PlotOptions();

                using (var lockDoc = doc.LockDocument())
                {
                    bool repeat = false;
                    do
                    {
                        var optPrompt = new PromptKeywordOptions($"\nПечать листов в PDF из текущего чертежа, выбранных файлов или из всех чертежей в папке.");
                        optPrompt.Keywords.Add("Текущего");
                        optPrompt.Keywords.Add("Папки");
                        optPrompt.Keywords.Add("Настройки");
                        optPrompt.Keywords.Default = "Папки";

                        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 System.Exception("Нужно сохранить текущий чертеж.");
                                }
                                string filePdfName   = Path.Combine(Path.GetDirectoryName(doc.Name), Path.GetFileNameWithoutExtension(doc.Name) + ".pdf");
                                PlotDirToPdf plotter = new PlotDirToPdf(new string[] { doc.Name }, filePdfName);
                                plotter.Options      = plotOpt;
                                plotter.Plot();
                            }
                            else if (resPrompt.StringResult == "Папки")
                            {
                                repeat = false;
                                Logger.Log.Info("Папки");
                                var dialog = new AcadLib.UI.FileFolderDialog();
                                dialog.Dialog.Multiselect = true;
                                dialog.IsFolderDialog     = true;
                                dialog.Dialog.Title       = "Выбор папки или файлов для печати чертежей в PDF.";
                                dialog.Dialog.Filter      = "Чертежи|*.dwg";
                                if (_album == null)
                                {
                                    dialog.Dialog.InitialDirectory = Path.GetDirectoryName(doc.Name);
                                }
                                else
                                {
                                    dialog.Dialog.InitialDirectory = _album.AlbumDir == null ? Path.GetDirectoryName(doc.Name) : _album.AlbumDir;
                                }
                                if (dialog.ShowDialog() == DialogResult.OK)
                                {
                                    PlotDirToPdf plotter;
                                    string firstFileNameWoExt = Path.GetFileNameWithoutExtension(dialog.Dialog.FileNames.First());
                                    if (dialog.Dialog.FileNames.Count() > 1)
                                    {
                                        plotter = new PlotDirToPdf(dialog.Dialog.FileNames, Path.GetFileName(dialog.SelectedPath));
                                    }
                                    else if (firstFileNameWoExt.Equals("п", StringComparison.OrdinalIgnoreCase))
                                    {
                                        plotter = new PlotDirToPdf(dialog.SelectedPath);
                                    }
                                    else
                                    {
                                        plotter = new PlotDirToPdf(dialog.Dialog.FileNames, firstFileNameWoExt);
                                    }
                                    plotter.Options = plotOpt;
                                    plotter.Plot();
                                }
                            }
                            else if (resPrompt.StringResult == "Настройки")
                            {
                                // Сортировка; Все файлы в один пдф или для каждого файла отдельная пдф
                                plotOpt.Show();
                                repeat = true;
                            }
                        }
                        else
                        {
                            ed.WriteMessage("\nОтменено пользователем.");
                            return;
                        }
                    } while (repeat);
                }
            });
        }