public static void Write(string fileName)
{
Diagram diagram = Program.Load(fileName);
string psName = System.IO.Path.ChangeExtension(fileName, "ps");
if(diagram != null)
{
try
{
// It seems the page size cannot be made smaller
// using SetSize(), only larger. Start with a
// small surface and enlarge it after layout.
using(PSSurface pss = new PSSurface(psName, 10, 10))
{
using(Context cr = new Context(pss))
{
DiagramRenderer dr = new DiagramRenderer(cr, 0, 0, diagram);
cr.LineWidth = 1.0;
cr.Color = new Color(0.0, 0.0, 0.0);
dr.Render();
pss.SetSize(dr.width, dr.height);
dr.Draw();
cr.ShowPage();
}
}
Console.WriteLine("Wrote {0}", psName);
}
catch
{
Console.WriteLine("Error writing {0}", psName);
}
}
}