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); } }