Index: src/demo/graph_to_eps_demo.cc
===================================================================
--- src/demo/graph_to_eps_demo.cc	(revision 1103)
+++ src/demo/graph_to_eps_demo.cc	(revision 1108)
@@ -91,4 +91,6 @@
 
   graphToEps(g,"graph_to_eps_demo_out.eps").scale(10).coords(coords).
+    title("Sample .eps figure").
+    copyright("(C) 2004 LEMON Project").
     nodeScale(2).nodeSizes(sizes).
     nodeShapes(shapes).
@@ -100,4 +102,6 @@
 
   graphToEps(g,"graph_to_eps_demo_out_arr.eps").scale(10).
+    title("Sample .eps figure (with arrowheads)").
+    copyright("(C) 2004 LEMON Project").
     nodeColors(composeMap(colorSet,colors)).
     coords(coords).
@@ -122,4 +126,6 @@
 
   graphToEps(g,"graph_to_eps_demo_out_par.eps").scale(10).
+    title("Sample .eps figure (parallel edges)").
+    copyright("(C) 2004 LEMON Project").
     nodeShapes(shapes).
     coords(coords).
@@ -133,4 +139,6 @@
   
   graphToEps(g,"graph_to_eps_demo_out_par_arr.eps").scale(10).
+    title("Sample .eps figure (parallel edges and arrowheads)").
+    copyright("(C) 2004 LEMON Project").
     nodeScale(2).nodeSizes(sizes).
     coords(coords).
@@ -145,4 +153,6 @@
 
   graphToEps(g,"graph_to_eps_demo_out_a4.eps").scaleToA4().
+    title("Sample .eps figure (fits to A4)").
+    copyright("(C) 2004 LEMON Project").
     nodeScale(2).nodeSizes(sizes).
     coords(coords).
Index: src/lemon/graph_to_eps.h
===================================================================
--- src/lemon/graph_to_eps.h	(revision 1107)
+++ src/lemon/graph_to_eps.h	(revision 1108)
@@ -17,4 +17,7 @@
 #ifndef LEMON_GRAPH_TO_EPS_H
 #define LEMON_GRAPH_TO_EPS_H
+
+#include <sys/time.h>
+#include <time.h>
 
 #include<iostream>
@@ -120,4 +123,7 @@
 
   bool _scaleToA4;
+
+  std::string _title;
+  std::string _copyright;
   
   ///Constructor
@@ -154,5 +160,4 @@
 ///\todo Follow PostScript's DSC.
 /// Use own dictionary.
-///\todo Provide a way to set %%Title: and %%Copyright:. Set %%CreationDate:
 ///\todo Useful new features.
 /// - Linestyles: dotted, dashed etc.
@@ -450,4 +455,18 @@
   GraphToEps<T> &bidir(bool b=true) {_undir=!b;return *this;}
 
+  ///Sets the title.
+
+  ///Sets the title of the generated image,
+  ///namely it inserts a <tt>%%Title:</tt> DSC field to the header of
+  ///the EPS file.
+  GraphToEps<T> &title(const std::string &t) {_title=t;return *this;}
+  ///Sets the copyright statement.
+
+  ///Sets the copyright statement of the generated image,
+  ///namely it inserts a <tt>%%Copyright:</tt> DSC field to the header of
+  ///the EPS file.
+  ///\todo Multiline copyright notice could be supported.
+  GraphToEps<T> &copyright(const std::string &t) {_copyright=t;return *this;}
+
 protected:
   bool isInsideNode(xy<double> p, double r,int t) 
@@ -477,9 +496,16 @@
     
     os << "%!PS-Adobe-2.0 EPSF-2.0\n";
-    os << "%%Title: LEMON GraphToEps figure\n" ///\todo setTitle() is needed
+    if(_title.size()>0) os << "%%Title: " << _title << '\n';
+     if(_copyright.size()>0) os << "%%Copyright: " << _copyright << '\n';
 //        << "%%Copyright: XXXX\n"
-       << "%%Creator: LEMON GraphToEps function\n"
-//        << "%%CreationDate: XXXXXXX\n"
-      ;
+    os << "%%Creator: LEMON GraphToEps function\n";
+    
+    {
+      char cbuf[50];
+      timeval tv;
+      gettimeofday(&tv, 0);
+      ctime_r(&tv.tv_sec,cbuf);
+      os << "%%CreationDate: " << cbuf;
+    }
     ///\todo: Chech whether the graph is empty.
     BoundingBox<double> bb;
@@ -490,10 +516,12 @@
       bb+=-p+_coords[n];
       }
-    if(!_scaleToA4) os << "%%BoundingBox: "
-		      << bb.left()*  _scale-_xBorder << ' '
-		      << bb.bottom()*_scale-_yBorder << ' '
-		      << bb.right()* _scale+_xBorder << ' '
-		      << bb.top()*   _scale+_yBorder << '\n';
-
+    if(_scaleToA4)
+      os <<"%%BoundingBox: 0 0 596 842\n%%DocumentPaperSizes: a4\n";
+    else os << "%%BoundingBox: "
+	    << bb.left()*  _scale-_xBorder << ' '
+	    << bb.bottom()*_scale-_yBorder << ' '
+	    << bb.right()* _scale+_xBorder << ' '
+	    << bb.top()*   _scale+_yBorder << '\n';
+    
     os << "%%EndComments\n";
     
