private void convertToMultisheetPDFToolStripMenuItem_Click(object sender, EventArgs e)
 {
     if (IsAutocadRunning())
     {
         MultiSheetsPdf.PlotPdf();
     }
 }
        public void PlotPdf()
        {
            Database db  = HostApplicationServices.WorkingDatabase;
            short    bgp = (short)Application.GetSystemVariable("BACKGROUNDPLOT");

            try
            {
                Application.SetSystemVariable("BACKGROUNDPLOT", 0);
                using (Transaction tr = db.TransactionManager.StartTransaction())
                {
                    List <Layout> layouts    = new List <Layout>();
                    DBDictionary  layoutDict =
                        (DBDictionary)db.LayoutDictionaryId.GetObject(OpenMode.ForRead);
                    foreach (DBDictionaryEntry entry in layoutDict)
                    {
                        if (entry.Key != "Model")
                        {
                            layouts.Add((Layout)tr.GetObject(entry.Value, OpenMode.ForRead));
                        }
                    }
                    layouts.Sort((l1, l2) => l1.TabOrder.CompareTo(l2.TabOrder));
                    string         filename = Path.ChangeExtension(db.Filename, "pdf");
                    MultiSheetsPdf plotter  = new MultiSheetsPdf(filename, layouts);
                    plotter.Publish();
                    tr.Commit();
                }
            }
            catch (System.Exception e)
            {
                Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
                ed.WriteMessage("\nError: {0}\n{1}", e.Message, e.StackTrace);
            }
            finally
            {
                Application.SetSystemVariable("BACKGROUNDPLOT", bgp);
            }
        }