ROOT  6.07/01
Reference Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Protected Attributes | Static Protected Attributes | List of all members
TPostScript Class Reference

Interface to PostScript.

To generate a Postscript (or encapsulated ps) file corresponding to a single image in a canvas, you can:

The size of the Postscript picture, by default, is computed to keep the aspect ratio of the picture on the screen, where the size along x is always 20cm. You can set the size of the PostScript picture before generating the picture with a command such as:

TPostScript myps("myfile.ps",111)
myps.Range(xsize,ysize);
object->Draw();
myps.Close();

You can set the default paper size with:

gStyle->SetPaperSize(xsize,ysize);

You can resume writing again in this file with myps.Open();. Note that you may have several Postscript files opened simultaneously.

Output type

The output type allows to define how the PostScript output will looks like. It allows to define the page format (A4, Legal etc..), the orientation (Portrait, Landscape) and the number of images (zones) per page. The output type has the following form:

[Format][Nx][Ny][Type]

Where:

Making several pictures in the same Postscript file: case 1

The following macro is an example illustrating how to open a Postscript file and draw several pictures. The generation of a new Postscript page is automatic when TCanvas::Clear is called by object->Draw().

{
TFile f("hsimple.root");
TCanvas c1("c1","canvas",800,600);
// select postscript output type
// type = 111 portrait ps
// type = 112 landscape ps
// type = 113 eps
Int_t type = 111;
// create a postscript file and set the paper size
TPostScript ps("test.ps",type);
ps.Range(16,24); //set x,y of printed page
// draw 3 histograms from file hsimple.root on separate pages
hpx->Draw();
c1.Update(); //force drawing in a macro
hprof->Draw();
c1.Update();
hpx->Draw("lego1");
c1.Update();
ps.Close();
}

Making several pictures in the same Postscript file: case 2

This example shows 2 pages. The canvas is divided. TPostScript::NewPage must be called before starting a new picture.object->Draw does not clear the canvas in this case because we clear only the pads and not the main canvas. Note that c1->Update must be called at the end of the first picture.

{
TFile *f1 = new TFile("hsimple.root");
TCanvas *c1 = new TCanvas("c1");
TPostScript *ps = new TPostScript("file.ps",112);
c1->Divide(2,1);
// picture 1
ps->NewPage();
c1->cd(1);
hpx->Draw();
c1->cd(2);
hprof->Draw();
c1->Update();
// picture 2
ps->NewPage();
c1->cd(1);
hpxpy->Draw();
c1->cd(2);
ntuple->Draw("px");
c1->Update();
ps->Close();
// invoke Postscript viewer
gSystem->Exec("gs file.ps");
}

Making several pictures in the same Postscript file: case 3

This is the recommended way. If the Postscript file name finishes with "(", the file remains opened (it is not closed). If the Postscript file name finishes with ")" and the file has been opened with "(", the file is closed.

Example:

{
TCanvas c1("c1");
h1.Draw();
c1.Print("c1.ps("); // write canvas and keep the ps file open
h2.Draw();
c1.Print("c1.ps"); // canvas is added to "c1.ps"
h3.Draw();
c1.Print("c1.ps)"); // canvas is added to "c1.ps" and ps file is closed
}

The TCanvas::Print("file.ps(") mechanism is very useful, but it can be a little inconvenient to have the action of opening/closing a file being atomic with printing a page. Particularly if pages are being generated in some loop one needs to detect the special cases of first and last page and then munge the argument to Print() accordingly. The "[" and "]" can be used instead of "(" and ")" as shown below.

Example:

c1.Print("file.ps["); // No actual print, just open file.ps
for (int i=0; i<10; ++i) {
// fill canvas for context i
// ...
c1.Print("file.ps"); // Actually print canvas to the file
}
c1.Print("file.ps]"); // No actual print, just close the file

Color Model

TPostScript support two color model RGB and CMYK. CMY and CMYK models are subtractive color models unlike RGB which is an additive. They are mainly used for printing purposes. CMY means Cyan Magenta Yellow to convert RGB to CMY it is enough to do: C=1-R, M=1-G and Y=1-B. CMYK has one more component K (black). The conversion from RGB to CMYK is:

Double_t Black = TMath::Min(TMath::Min(1-Red,1-Green),1-Blue);
Double_t Cyan = (1-Red-Black)/(1-Black);
Double_t Magenta = (1-Green-Black)/(1-Black);
Double_t Yellow = (1-Blue-Black)/(1-Black);

CMYK add the black component which allows to have a better quality for black printing. PostScript support the CMYK model.

To change the color model use gStyle->SetColorModelPS(c).

Definition at line 31 of file TPostScript.h.

Public Member Functions

 TPostScript ()
 
 TPostScript (const char *filename, Int_t type=-111)
 Initialize the PostScript interface. More...
 
virtual ~TPostScript ()
 Default PostScript destructor. More...
 
void CellArrayBegin (Int_t W, Int_t H, Double_t x1, Double_t x2, Double_t y1, Double_t y2)
 Draw a Cell Array. More...
 
void CellArrayFill (Int_t r, Int_t g, Int_t b)
 Paint the Cell Array. More...
 
void CellArrayEnd ()
 End the Cell Array painting. More...
 
void Close (Option_t *opt="")
 Close a PostScript file. More...
 
Int_t CMtoPS (Double_t u)
 
void DefineMarkers ()
 Define the markers. More...
 
void DrawBox (Double_t x1, Double_t y1, Double_t x2, Double_t y2)
 Draw a Box. More...
 
void DrawFrame (Double_t xl, Double_t yl, Double_t xt, Double_t yt, Int_t mode, Int_t border, Int_t dark, Int_t light)
 Draw a Frame around a box. More...
 
void DrawHatch (Float_t dy, Float_t angle, Int_t n, Float_t *x, Float_t *y)
 Draw Fill area with hatch styles. More...
 
void DrawHatch (Float_t dy, Float_t angle, Int_t n, Double_t *x, Double_t *y)
 Draw Fill area with hatch styles. More...
 
void DrawPolyLine (Int_t n, TPoints *xy)
 Draw a PolyLine. More...
 
void DrawPolyLineNDC (Int_t n, TPoints *uv)
 Draw a PolyLine in NDC space. More...
 
void DrawPolyMarker (Int_t n, Float_t *x, Float_t *y)
 Draw markers at the n WC points x, y. More...
 
void DrawPolyMarker (Int_t n, Double_t *x, Double_t *y)
 Draw markers at the n WC points x, y. More...
 
void DrawPS (Int_t n, Float_t *xw, Float_t *yw)
 Draw a PolyLine. More...
 
void DrawPS (Int_t n, Double_t *xw, Double_t *yw)
 Draw a PolyLine. More...
 
bool FontEmbedType1 (const char *filename)
 
bool FontEmbedType2 (const char *filename)
 
bool FontEmbedType42 (const char *filename)
 
void FontEmbed ()
 Embed font in PS file. More...
 
void FontEncode ()
 Font Re-encoding. More...
 
void Initialize ()
 PostScript Initialisation. More...
 
void NewPage ()
 Move to a new PostScript page. More...
 
void Off ()
 Deactivate an already open PostScript file. More...
 
void On ()
 Activate an already open PostScript file. More...
 
void Open (const char *filename, Int_t type=-111)
 Open a PostScript file. More...
 
void SaveRestore (Int_t flag)
 Compute number of gsaves for restore This allows to write the correct number of grestore at the end of the PS file. More...
 
void SetFillColor (Color_t cindex=1)
 Set color index for fill areas. More...
 
void SetFillPatterns (Int_t ipat, Int_t color)
 Patterns definition. More...
 
void SetLineColor (Color_t cindex=1)
 Set color index for lines. More...
 
void SetLineJoin (Int_t linejoin=0)
 Set the value of the global parameter TPostScript::fgLineJoin. More...
 
void SetLineStyle (Style_t linestyle=1)
 Change the line style. More...
 
void SetLineWidth (Width_t linewidth=1)
 Change the line width. More...
 
void SetLineScale (Float_t scale=3)
 
void SetMarkerColor (Color_t cindex=1)
 Set color index for markers. More...
 
void SetTextColor (Color_t cindex=1)
 Set color index for text. More...
 
void MovePS (Int_t x, Int_t y)
 Move to a new position. More...
 
void Range (Float_t xrange, Float_t yrange)
 Set the range for the paper in centimeters. More...
 
void SetColor (Int_t color=1)
 Set the current color. More...
 
void SetColor (Float_t r, Float_t g, Float_t b)
 Set directly current color (don't go via TColor). More...
 
void Text (Double_t x, Double_t y, const char *string)
 Write a string of characters. More...
 
void Text (Double_t x, Double_t y, const wchar_t *string)
 Write a string of characters. More...
 
void TextNDC (Double_t u, Double_t v, const char *string)
 Write a string of characters in NDC. More...
 
void TextNDC (Double_t u, Double_t v, const wchar_t *string)
 Write a string of characters in NDC. More...
 
Int_t UtoPS (Double_t u)
 Convert U from NDC coordinate to PostScript. More...
 
Int_t VtoPS (Double_t v)
 Convert V from NDC coordinate to PostScript. More...
 
Int_t XtoPS (Double_t x)
 Convert X from world coordinate to PostScript. More...
 
Int_t YtoPS (Double_t y)
 Convert Y from world coordinate to PostScript. More...
 
void Zone ()
 Initialize the PostScript page in zones. More...
 
- Public Member Functions inherited from TVirtualPS
 TVirtualPS ()
 
 TVirtualPS (const char *filename, Int_t type=-111)
 VirtualPS constructor. More...
 
virtual ~TVirtualPS ()
 VirtualPS destructor. More...
 
virtual void PrintFast (Int_t nch, const char *string="")
 Fast version of Print. More...
 
virtual void PrintStr (const char *string="")
 Output the string str in the output buffer. More...
 
virtual void WriteInteger (Int_t i, Bool_t space=kTRUE)
 Write one Integer to the file. More...
 
virtual void WriteReal (Float_t r, Bool_t space=kTRUE)
 Write a Real number to the file. More...
 
virtual void PrintRaw (Int_t len, const char *str)
 Print a raw. More...
 
virtual voidGetStream () const
 
virtual void SetStream (std::ofstream *os)
 
virtual void SetType (Int_t=-111)
 
virtual Int_t GetType () const
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TString &name, const TString &title)
 
 TNamed (const TNamed &named)
 
TNamedoperator= (const TNamed &rhs)
 TNamed assignment operator. More...
 
virtual ~TNamed ()
 
virtual void Clear (Option_t *option="")
 Set name and title to empty strings (""). More...
 
virtual TObjectClone (const char *newname="") const
 Make a clone of an object using the Streamer facility. More...
 
virtual Int_t Compare (const TObject *obj) const
 Compare two TNamed objects. More...
 
virtual void Copy (TObject &named) const
 Copy this to obj. More...
 
virtual void FillBuffer (char *&buffer)
 Encode TNamed into output buffer. More...
 
virtual const char * GetName () const
 Returns name of object. More...
 
virtual const char * GetTitle () const
 Returns title of object. More...
 
virtual ULong_t Hash () const
 Return hash value for this object. More...
 
virtual Bool_t IsSortable () const
 
virtual void SetName (const char *name)
 Change (i.e. More...
 
virtual void SetNameTitle (const char *name, const char *title)
 Change (i.e. set) all the TNamed parameters (name and title). More...
 
virtual void SetTitle (const char *title="")
 Change (i.e. set) the title of the TNamed. More...
 
virtual void ls (Option_t *option="") const
 List TNamed name and title. More...
 
virtual void Print (Option_t *option="") const
 Print TNamed name and title. More...
 
virtual Int_t Sizeof () const
 Return size of the TNamed part of the TObject. More...
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 TObject copy ctor. More...
 
TObjectoperator= (const TObject &rhs)
 TObject assignment operator. More...
 
virtual ~TObject ()
 TObject destructor. More...
 
virtual void AppendPad (Option_t *option="")
 Append graphics object to current pad. More...
 
virtual void Browse (TBrowser *b)
 Browse object. May be overridden for another default action. More...
 
virtual const char * ClassName () const
 Returns name of class to which the object belongs. More...
 
virtual void Delete (Option_t *option="")
 Delete this object. More...
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 Computes distance from point (px,py) to the object. More...
 
virtual void Draw (Option_t *option="")
 Default Draw method for all objects. More...
 
virtual void DrawClass () const
 Draw class inheritance tree of the class to which this object belongs. More...
 
virtual TObjectDrawClone (Option_t *option="") const
 Draw a clone of this object in the current pad. More...
 
virtual void Dump () const
 Dump contents of object on stdout. More...
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 Execute method on this object with the given parameter string, e.g. More...
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 Execute method on this object with parameters stored in the TObjArray. More...
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 Execute action corresponding to an event at (px,py). More...
 
virtual TObjectFindObject (const char *name) const
 Must be redefined in derived classes. More...
 
virtual TObjectFindObject (const TObject *obj) const
 Must be redefined in derived classes. More...
 
virtual Option_tGetDrawOption () const
 Get option used by the graphics system to draw this object. More...
 
virtual UInt_t GetUniqueID () const
 Return the unique object id. More...
 
virtual const char * GetIconName () const
 Returns mime type name of object. More...
 
virtual Option_tGetOption () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 Returns string containing info about the object at position (px,py). More...
 
virtual Bool_t HandleTimer (TTimer *timer)
 Execute action in response of a timer timing out. More...
 
virtual Bool_t InheritsFrom (const char *classname) const
 Returns kTRUE if object inherits from class "classname". More...
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 Returns kTRUE if object inherits from TClass cl. More...
 
virtual void Inspect () const
 Dump contents of this object in a graphics canvas. More...
 
virtual Bool_t IsFolder () const
 Returns kTRUE in case object contains browsable objects (like containers or lists of other objects). More...
 
virtual Bool_t IsEqual (const TObject *obj) const
 Default equal comparison (objects are equal if they have the same address in memory). More...
 
Bool_t IsOnHeap () const
 
Bool_t IsZombie () const
 
virtual Bool_t Notify ()
 This method must be overridden to handle object notification. More...
 
virtual void Paint (Option_t *option="")
 This method must be overridden if a class wants to paint itself. More...
 
virtual void Pop ()
 Pop on object drawn in a pad to the top of the display list. More...
 
virtual Int_t Read (const char *name)
 Read contents of object with specified name from the current directory. More...
 
virtual void RecursiveRemove (TObject *obj)
 Recursively remove this object from a list. More...
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 Save this object in the file specified by filename. More...
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 Save a primitive as a C++ statement(s) on output stream "out". More...
 
virtual void SetDrawOption (Option_t *option="")
 Set drawing option for object. More...
 
virtual void SetUniqueID (UInt_t uid)
 Set the unique object id. More...
 
virtual void UseCurrentStyle ()
 Set current style settings in this object This function is called when either TCanvas::UseCurrentStyle or TROOT::ForceStyle have been invoked. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 Write this object to the current directory. More...
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 Write this object to the current directory. More...
 
voidoperator new (size_t sz)
 
voidoperator new[] (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz, void *vp)
 
void operator delete (void *ptr)
 Operator delete. More...
 
void operator delete[] (void *ptr)
 Operator delete []. More...
 
void SetBit (UInt_t f, Bool_t set)
 Set or unset the user status bits as specified in f. More...
 
void SetBit (UInt_t f)
 
void ResetBit (UInt_t f)
 
Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
void InvertBit (UInt_t f)
 
virtual void Info (const char *method, const char *msgfmt,...) const
 Issue info message. More...
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 Issue warning message. More...
 
virtual void Error (const char *method, const char *msgfmt,...) const
 Issue error message. More...
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 Issue system error message. More...
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 Issue fatal error message. More...
 
void AbstractMethod (const char *method) const
 Use this method to implement an "abstract" method that you don't want to leave purely abstract. More...
 
void MayNotUse (const char *method) const
 Use this method to signal that a method (defined in a base class) may not be called in a derived class (in principle against good design since a child class should not provide less functionality than its parent, however, sometimes it is necessary). More...
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 Use this method to declare a method obsolete. More...
 
- Public Member Functions inherited from TAttLine
 TAttLine ()
 AttLine default constructor. More...
 
 TAttLine (Color_t lcolor, Style_t lstyle, Width_t lwidth)
 AttLine normal constructor. More...
 
virtual ~TAttLine ()
 AttLine destructor. More...
 
void Copy (TAttLine &attline) const
 Copy this line attributes to a new TAttLine. More...
 
Int_t DistancetoLine (Int_t px, Int_t py, Double_t xp1, Double_t yp1, Double_t xp2, Double_t yp2)
 Compute distance from point px,py to a line. More...
 
virtual Color_t GetLineColor () const
 
virtual Style_t GetLineStyle () const
 
virtual Width_t GetLineWidth () const
 
virtual void Modify ()
 Change current line attributes if necessary. More...
 
virtual void ResetAttLine (Option_t *option="")
 Reset this line attributes to default values. More...
 
virtual void SaveLineAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t widdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetLineAttributes ()
 Invoke the DialogCanvas Line attributes. More...
 
virtual void SetLineColorAlpha (Color_t lcolor, Float_t lalpha)
 Set a transparent line color. More...
 
 ClassDef (TAttLine, 2)
 
- Public Member Functions inherited from TAttFill
 TAttFill ()
 
 TAttFill (Color_t fcolor, Style_t fstyle)
 AttFill normal constructor. More...
 
virtual ~TAttFill ()
 AttFill destructor. More...
 
void Copy (TAttFill &attfill) const
 Copy this fill attributes to a new TAttFill. More...
 
virtual Color_t GetFillColor () const
 
virtual Style_t GetFillStyle () const
 
virtual Bool_t IsTransparent () const
 
virtual void Modify ()
 Change current fill area attributes if necessary. More...
 
virtual void ResetAttFill (Option_t *option="")
 Reset this fill attributes to default values. More...
 
virtual void SaveFillAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1001)
 Save fill attributes as C++ statement(s) on output stream out. More...
 
virtual void SetFillAttributes ()
 Invoke the DialogCanvas Fill attributes. More...
 
virtual void SetFillColorAlpha (Color_t fcolor, Float_t falpha)
 Set a transparent fill color. More...
 
virtual void SetFillStyle (Style_t fstyle)
 
- Public Member Functions inherited from TAttMarker
 TAttMarker ()
 
 TAttMarker (Color_t color, Style_t style, Size_t msize)
 TAttMarker normal constructor. More...
 
virtual ~TAttMarker ()
 TAttMarker destructor. More...
 
void Copy (TAttMarker &attmarker) const
 Copy this marker attributes to a new TAttMarker. More...
 
virtual Color_t GetMarkerColor () const
 
virtual Style_t GetMarkerStyle () const
 
virtual Size_t GetMarkerSize () const
 
virtual void Modify ()
 Change current marker attributes if necessary. More...
 
virtual void ResetAttMarker (Option_t *toption="")
 Reset this marker attributes to the default values. More...
 
virtual void SaveMarkerAttributes (std::ostream &out, const char *name, Int_t coldef=1, Int_t stydef=1, Int_t sizdef=1)
 Save line attributes as C++ statement(s) on output stream out. More...
 
virtual void SetMarkerAttributes ()
 Invoke the DialogCanvas Marker attributes. More...
 
virtual void SetMarkerColorAlpha (Color_t mcolor, Float_t malpha)
 Set a transparent marker color. More...
 
virtual void SetMarkerStyle (Style_t mstyle=1)
 
virtual void SetMarkerSize (Size_t msize=1)
 
 ClassDef (TAttMarker, 2)
 
- Public Member Functions inherited from TAttText
 TAttText ()
 
 TAttText (Int_t align, Float_t angle, Color_t color, Style_t font, Float_t tsize)
 AttText normal constructor. More...
 
virtual ~TAttText ()
 AttText destructor. More...
 
void Copy (TAttText &atttext) const
 Copy this text attributes to a new TAttText. More...
 
virtual Short_t GetTextAlign () const
 
virtual Float_t GetTextAngle () const
 
virtual Color_t GetTextColor () const
 
virtual Font_t GetTextFont () const
 
virtual Float_t GetTextSize () const
 
virtual void Modify ()
 Change current text attributes if necessary. More...
 
virtual void ResetAttText (Option_t *toption="")
 Reset this text attributes to default values. More...
 
virtual void SaveTextAttributes (std::ostream &out, const char *name, Int_t alidef=12, Float_t angdef=0, Int_t coldef=1, Int_t fondef=61, Float_t sizdef=1)
 Save text attributes as C++ statement(s) on output stream out. More...
 
virtual void SetTextAttributes ()
 Invoke the DialogCanvas Text attributes. More...
 
virtual void SetTextAlign (Short_t align=11)
 
virtual void SetTextAngle (Float_t tangle=0)
 
virtual void SetTextColorAlpha (Color_t tcolor, Float_t talpha)
 Set a transparent marker color. More...
 
virtual void SetTextFont (Font_t tfont=62)
 
virtual void SetTextSize (Float_t tsize=1)
 
virtual void SetTextSizePixels (Int_t npixels)
 Set the text size in pixels. More...
 

Protected Attributes

Float_t fX1v
 
Float_t fY1v
 
Float_t fX2v
 
Float_t fY2v
 
Float_t fX1w
 
Float_t fY1w
 
Float_t fX2w
 
Float_t fY2w
 
Float_t fDXC
 
Float_t fDYC
 
Float_t fXC
 
Float_t fYC
 
Float_t fFX
 
Float_t fFY
 
Float_t fXVP1
 
Float_t fXVP2
 
Float_t fYVP1
 
Float_t fYVP2
 
Float_t fXVS1
 
Float_t fXVS2
 
Float_t fYVS1
 
Float_t fYVS2
 
Float_t fXsize
 
Float_t fYsize
 
Float_t fMaxsize
 
Float_t fRed
 
Float_t fGreen
 
Float_t fBlue
 
Float_t fLineScale
 
Int_t fLineJoin
 
Int_t fSave
 
Int_t fNXzone
 
Int_t fNYzone
 
Int_t fIXzone
 
Int_t fIYzone
 
Float_t fMarkerSizeCur
 
Int_t fCurrentColor
 
Int_t fNpages
 
Int_t fType
 
Int_t fMode
 
Int_t fClip
 
Bool_t fBoundingBox
 
Bool_t fClear
 
Bool_t fClipStatus
 
Bool_t fRange
 
Bool_t fZone
 
char fPatterns [32]
 
Int_t fNbinCT
 
Int_t fNbCellW
 
Int_t fNbCellLine
 
Int_t fMaxLines
 
Int_t fLastCellRed
 
Int_t fLastCellGreen
 
Int_t fLastCellBlue
 
Int_t fNBSameColorCell
 
TString fFileName
 
Bool_t fFontEmbed
 
- Protected Attributes inherited from TVirtualPS
Int_t fNByte
 
Int_t fLenBuffer
 
Int_t fSizBuffer
 
Bool_t fPrinted
 
std::ofstream * fStream
 
char * fBuffer
 
const char * fImplicitCREsc
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TAttLine
Color_t fLineColor
 
Style_t fLineStyle
 
Width_t fLineWidth
 
- Protected Attributes inherited from TAttFill
Color_t fFillColor
 
Style_t fFillStyle
 
- Protected Attributes inherited from TAttMarker
Color_t fMarkerColor
 
Style_t fMarkerStyle
 
Size_t fMarkerSize
 
- Protected Attributes inherited from TAttText
Float_t fTextAngle
 
Float_t fTextSize
 
Short_t fTextAlign
 
Color_t fTextColor
 
Font_t fTextFont
 

Static Protected Attributes

static Int_t fgLineJoin = 0
 

Additional Inherited Members

- Public Types inherited from TObject
enum  EStatusBits {
  kCanDelete = BIT(0), kMustCleanup = BIT(3), kObjInCanvas = BIT(3), kIsReferenced = BIT(4),
  kHasUUID = BIT(5), kCannotPick = BIT(6), kNoContextMenu = BIT(8), kInvalidObject = BIT(13)
}
 
enum  { kIsOnHeap = 0x01000000, kNotDeleted = 0x02000000, kZombie = 0x04000000, kBitMask = 0x00ffffff }
 
enum  { kSingleKey = BIT(0), kOverwrite = BIT(1), kWriteDelete = BIT(2) }
 
- Static Public Member Functions inherited from TObject
static Long_t GetDtorOnly ()
 Return destructor only flag. More...
 
static void SetDtorOnly (void *obj)
 Set destructor only flag. More...
 
static Bool_t GetObjectStat ()
 Get status of object stat flag. More...
 
static void SetObjectStat (Bool_t stat)
 Turn on/off tracking of objects in the TObjectTable. More...
 
- Protected Member Functions inherited from TObject
void MakeZombie ()
 
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 Interface to ErrorHandler (protected). More...
 

#include <TPostScript.h>

Inheritance diagram for TPostScript:
[legend]

Constructor & Destructor Documentation

TPostScript::TPostScript ( )
TPostScript::TPostScript ( const char *  fname,
Int_t  wtype = -111 
)

Initialize the PostScript interface.

  • fname : PostScript file name
  • wtype : PostScript workstation type

The possible workstation types are:

  • 111 ps Portrait
  • 112 ps Landscape
  • 113 eps

Definition at line 339 of file TPostScript.cxx.

TPostScript::~TPostScript ( )
virtual

Default PostScript destructor.

Definition at line 425 of file TPostScript.cxx.

Member Function Documentation

void TPostScript::CellArrayBegin ( Int_t  W,
Int_t  H,
Double_t  x1,
Double_t  x2,
Double_t  y1,
Double_t  y2 
)
virtual

Draw a Cell Array.

Drawing a PostScript Cell Array is in fact done thanks to three procedures: CellArrayBegin, CellArrayFill, and CellArrayEnd.

  • CellArrayBegin: Initiate the Cell Array by writing the necessary PostScript procedures and the initial values of the required parameters. The input parameters are:
    • W: number of boxes along the width.
    • H: number of boxes along the height
    • x1,x2,y1,y2: First box coordinates.
  • CellArrayFill: Is called for each box of the Cell Array. The first box is the top left one and the last box is the bottom right one. The input parameters are the Red, Green, and Blue components of the box colour. These Levels are between 0 and 255.
  • CellArrayEnd: Finishes the Cell Array.

PostScript cannot handle arrays larger than 65535. So the Cell Array is drawn in several pieces.

Implements TVirtualPS.

Definition at line 549 of file TPostScript.cxx.

void TPostScript::CellArrayEnd ( )
virtual

End the Cell Array painting.

Implements TVirtualPS.

Definition at line 660 of file TPostScript.cxx.

void TPostScript::CellArrayFill ( Int_t  r,
Int_t  g,
Int_t  b 
)
virtual

Paint the Cell Array.

Implements TVirtualPS.

Definition at line 622 of file TPostScript.cxx.

void TPostScript::Close ( Option_t opt = "")
virtual

Close a PostScript file.

Implements TVirtualPS.

Definition at line 433 of file TPostScript.cxx.

Referenced by ~TPostScript().

Int_t TPostScript::CMtoPS ( Double_t  u)
inline

Definition at line 104 of file TPostScript.h.

Referenced by Initialize(), and NewPage().

void TPostScript::DefineMarkers ( )

Define the markers.

Definition at line 671 of file TPostScript.cxx.

Referenced by Initialize().

void TPostScript::DrawBox ( Double_t  x1,
Double_t  y1,
Double_t  x2,
Double_t  y2 
)
virtual

Draw a Box.

Implements TVirtualPS.

Definition at line 705 of file TPostScript.cxx.

void TPostScript::DrawFrame ( Double_t  xl,
Double_t  yl,
Double_t  xt,
Double_t  yt,
Int_t  mode,
Int_t  border,
Int_t  dark,
Int_t  light 
)
virtual

Draw a Frame around a box.

  • mode = -1 box looks as it is behind the screen
  • mode = 1 box looks as it is in front of the screen
  • border is the border size in already precomputed PostScript units
  • dark is the color for the dark part of the frame
  • light is the color for the light part of the frame

Implements TVirtualPS.

Definition at line 767 of file TPostScript.cxx.

void TPostScript::DrawHatch ( Float_t  dy,
Float_t  angle,
Int_t  n,
Float_t x,
Float_t y 
)

Draw Fill area with hatch styles.

Definition at line 1414 of file TPostScript.cxx.

Referenced by DrawPS().

void TPostScript::DrawHatch ( Float_t  dy,
Float_t  angle,
Int_t  n,
Double_t x,
Double_t y 
)

Draw Fill area with hatch styles.

Definition at line 1422 of file TPostScript.cxx.

void TPostScript::DrawPolyLine ( Int_t  nn,
TPoints xy 
)

Draw a PolyLine.

Draw a polyline through the points xy.

  • If nn=1 moves only to point x,y.
  • If nn=0 the x,y are written in the PostScript file according to the current transformation.
  • If nn>0 the line is clipped as a line.
  • If nn<0 the line is clipped as a fill area.

Definition at line 885 of file TPostScript.cxx.

void TPostScript::DrawPolyLineNDC ( Int_t  nn,
TPoints xy 
)

Draw a PolyLine in NDC space.

Draw a polyline through the points xy.

  • If nn=1 moves only to point x,y.
  • If nn=0 the x,y are written in the PostScript file according to the current transformation.
  • If nn>0 the line is clipped as a line.
  • If nn<0 the line is clipped as a fill area.

Definition at line 969 of file TPostScript.cxx.

void TPostScript::DrawPolyMarker ( Int_t  n,
Float_t x,
Float_t y 
)
virtual

Draw markers at the n WC points x, y.

Implements TVirtualPS.

Definition at line 1046 of file TPostScript.cxx.

void TPostScript::DrawPolyMarker ( Int_t  n,
Double_t x,
Double_t y 
)
virtual

Draw markers at the n WC points x, y.

Implements TVirtualPS.

Definition at line 1119 of file TPostScript.cxx.

void TPostScript::DrawPS ( Int_t  nn,
Float_t xw,
Float_t yw 
)
virtual

Draw a PolyLine.

Draw a polyline through the points xw,yw.

  • If nn=1 moves only to point xw,yw.
  • If nn=0 the XW(1) and YW(1) are written in the PostScript file according to the current NT.
  • If nn>0 the line is clipped as a line.
  • If nn<0 the line is clipped as a fill area.

Implements TVirtualPS.

Definition at line 1199 of file TPostScript.cxx.

Referenced by DrawBox().

void TPostScript::DrawPS ( Int_t  nn,
Double_t xw,
Double_t yw 
)
virtual

Draw a PolyLine.

Draw a polyline through the points xw,yw.

  • If nn=1 moves only to point xw,yw.
  • If nn=0 the xw(1) and YW(1) are written in the PostScript file — according to the current NT.
  • If nn>0 the line is clipped as a line.
  • If nn<0 the line is clipped as a fill area.

Implements TVirtualPS.

Definition at line 1310 of file TPostScript.cxx.

void TPostScript::FontEmbed ( void  )

Embed font in PS file.

Definition at line 1529 of file TPostScript.cxx.

Referenced by Close().

Bool_t TPostScript::FontEmbedType1 ( const char *  filename)

Definition at line 1429 of file TPostScript.cxx.

Referenced by FontEmbed().

Bool_t TPostScript::FontEmbedType2 ( const char *  filename)

Definition at line 1463 of file TPostScript.cxx.

Referenced by FontEmbed().

Bool_t TPostScript::FontEmbedType42 ( const char *  filename)

Definition at line 1495 of file TPostScript.cxx.

Referenced by FontEmbed().

void TPostScript::FontEncode ( )

Font Re-encoding.

Definition at line 1623 of file TPostScript.cxx.

Referenced by Initialize().

void TPostScript::Initialize ( )

PostScript Initialisation.

This method initialize the following PostScript procedures:

Macro Name Input parameters Explanation
l x y Draw a line to the x y position
m x y Move to the position x y
box dx dy x y Define a box
bl dx dy x y Draw a line box
bf dx dy x y Draw a filled box
t x y Translate
r angle Rotate
rl i j Roll the stack
d x y Draw a relative line to x y
X x Draw a relative line to x (y=0)
Y y Draw a relative line to y (x=0)
rm x y Move relatively to x y
gr Restore the graphic context
lw lwidth Set line width to lwidth
sd [] 0 Set dash line define by []
s Stroke mode
c r g b Set rgb color to r g b
cl Close path
f Fill the last describe path
mXX x y Draw the marker type XX at (x,y)
Zone ix iy Define the current zone
black The color is black
C dx dy x y Clipping on
NC Clipping off
R repeat
ita Used to make the symbols italic
K kshow

Definition at line 1685 of file TPostScript.cxx.

Referenced by NewPage(), and Open().

void TPostScript::MovePS ( Int_t  x,
Int_t  y 
)

Move to a new position.

Definition at line 1943 of file TPostScript.cxx.

Referenced by DrawFrame(), DrawPolyLine(), DrawPolyLineNDC(), and DrawPS().

void TPostScript::NewPage ( )
virtual

Move to a new PostScript page.

Implements TVirtualPS.

Definition at line 1961 of file TPostScript.cxx.

Referenced by Open().

void TPostScript::Off ( )

Deactivate an already open PostScript file.

Definition at line 522 of file TPostScript.cxx.

Referenced by On().

void TPostScript::On ( )

Activate an already open PostScript file.

Definition at line 509 of file TPostScript.cxx.

void TPostScript::Open ( const char *  filename,
Int_t  type = -111 
)
virtual

Open a PostScript file.

Implements TVirtualPS.

Definition at line 350 of file TPostScript.cxx.

Referenced by TPostScript().

void TPostScript::Range ( Float_t  xrange,
Float_t  yrange 
)

Set the range for the paper in centimeters.

Definition at line 2001 of file TPostScript.cxx.

Referenced by Open().

void TPostScript::SaveRestore ( Int_t  flag)

Compute number of gsaves for restore This allows to write the correct number of grestore at the end of the PS file.

Definition at line 2059 of file TPostScript.cxx.

Referenced by Close(), Initialize(), NewPage(), Text(), and Zone().

void TPostScript::SetColor ( Int_t  color = 1)
void TPostScript::SetColor ( Float_t  r,
Float_t  g,
Float_t  b 
)
virtual

Set directly current color (don't go via TColor).

Implements TVirtualPS.

Definition at line 2489 of file TPostScript.cxx.

void TPostScript::SetFillColor ( Color_t  cindex = 1)
virtual

Set color index for fill areas.

Reimplemented from TAttFill.

Definition at line 2068 of file TPostScript.cxx.

void TPostScript::SetFillPatterns ( Int_t  ipat,
Int_t  color 
)

Patterns definition.

Define the pattern ipat in the current PS file. ipat can vary from 1 to 25. Together with the pattern, the color (color) in which the pattern has to be drawn is also required. A pattern is defined in the current PS file only the first time it is used. Some level 2 Postscript functions are used, so on level 1 printers, patterns will not work. This is not a big problem because patterns are defined only if they are used, so if they are not used a PS level 1 file will not be polluted by level 2 features, and in any case the old patterns used a lot of memory which made them almost unusable on old level 1 printers. Finally we should say that level 1 devices are becoming very rare. The official PostScript is now level 3 !

Definition at line 2090 of file TPostScript.cxx.

Referenced by DrawPS().

void TPostScript::SetLineColor ( Color_t  cindex = 1)
virtual

Set color index for lines.

Reimplemented from TAttLine.

Definition at line 2401 of file TPostScript.cxx.

void TPostScript::SetLineJoin ( Int_t  linejoin = 0)

Set the value of the global parameter TPostScript::fgLineJoin.

This parameter determines the appearance of joining lines in a PostScript output. It takes one argument which may be:

  • 0 (miter join)
  • 1 (round join)
  • 2 (bevel join) The default value is 0 (miter join).
postscript_1.png

To change the line join behaviour just do:

TPostScript::SetLineJoin(2); // Set the PS line join to bevel.

Definition at line 2424 of file TPostScript.cxx.

void TPostScript::SetLineScale ( Float_t  scale = 3)
inline

Definition at line 136 of file TPostScript.h.

Referenced by Open().

void TPostScript::SetLineStyle ( Style_t  linestyle = 1)
virtual

Change the line style.

  • linestyle = 2 dashed
  • linestyle = 3 dotted
  • linestyle = 4 dash-dotted
  • linestyle = else = solid

See TStyle::SetLineStyleString for style definition

Reimplemented from TAttLine.

Definition at line 2439 of file TPostScript.cxx.

Referenced by DrawPolyLine(), DrawPolyLineNDC(), DrawPolyMarker(), and DrawPS().

void TPostScript::SetLineWidth ( Width_t  linewidth = 1)
virtual

Change the line width.

Reimplemented from TAttLine.

Definition at line 2453 of file TPostScript.cxx.

Referenced by DrawPolyLine(), DrawPolyLineNDC(), DrawPolyMarker(), and DrawPS().

void TPostScript::SetMarkerColor ( Color_t  cindex = 1)
virtual

Set color index for markers.

Reimplemented from TAttMarker.

Definition at line 2466 of file TPostScript.cxx.

void TPostScript::SetTextColor ( Color_t  cindex = 1)
virtual

Set color index for text.

Reimplemented from TAttText.

Definition at line 2521 of file TPostScript.cxx.

void TPostScript::Text ( Double_t  xx,
Double_t  yy,
const char *  chars 
)
virtual

Write a string of characters.

This method writes the string chars into a PostScript file at position xx,yy in world coordinates.

Implements TVirtualPS.

Definition at line 2534 of file TPostScript.cxx.

Referenced by TextNDC().

void TPostScript::Text ( Double_t  xx,
Double_t  yy,
const wchar_t *  chars 
)
virtual

Write a string of characters.

This method writes the string chars into a PostScript file at position xx,yy in world coordinates.

Implements TVirtualPS.

Definition at line 2739 of file TPostScript.cxx.

void TPostScript::TextNDC ( Double_t  u,
Double_t  v,
const char *  string 
)

Write a string of characters in NDC.

Definition at line 2902 of file TPostScript.cxx.

void TPostScript::TextNDC ( Double_t  u,
Double_t  v,
const wchar_t *  string 
)

Write a string of characters in NDC.

Definition at line 2912 of file TPostScript.cxx.

Int_t TPostScript::UtoPS ( Double_t  u)

Convert U from NDC coordinate to PostScript.

Definition at line 2922 of file TPostScript.cxx.

Referenced by DrawPolyLineNDC(), DrawPolyMarker(), and XtoPS().

Int_t TPostScript::VtoPS ( Double_t  v)

Convert V from NDC coordinate to PostScript.

Definition at line 2931 of file TPostScript.cxx.

Referenced by DrawPolyLineNDC(), and YtoPS().

Int_t TPostScript::XtoPS ( Double_t  x)

Convert X from world coordinate to PostScript.

Definition at line 2940 of file TPostScript.cxx.

Referenced by CellArrayBegin(), DrawBox(), DrawFrame(), DrawPolyLine(), DrawPolyMarker(), DrawPS(), and Text().

Int_t TPostScript::YtoPS ( Double_t  y)

Convert Y from world coordinate to PostScript.

Definition at line 2949 of file TPostScript.cxx.

Referenced by CellArrayBegin(), DrawBox(), DrawFrame(), DrawPolyLine(), DrawPolyMarker(), DrawPS(), and Text().

void TPostScript::Zone ( )

Initialize the PostScript page in zones.

Definition at line 2958 of file TPostScript.cxx.

Referenced by NewPage().

Member Data Documentation

Float_t TPostScript::fBlue
protected

Definition at line 61 of file TPostScript.h.

Referenced by DrawPS(), Open(), SetColor(), and Zone().

Bool_t TPostScript::fBoundingBox
protected

Definition at line 75 of file TPostScript.h.

Referenced by NewPage(), and Open().

Bool_t TPostScript::fClear
protected

Definition at line 76 of file TPostScript.h.

Referenced by NewPage(), Open(), and Zone().

Int_t TPostScript::fClip
protected

Definition at line 74 of file TPostScript.h.

Referenced by Open().

Bool_t TPostScript::fClipStatus
protected

Definition at line 77 of file TPostScript.h.

Referenced by Open().

Int_t TPostScript::fCurrentColor
protected

Definition at line 70 of file TPostScript.h.

Referenced by Open(), and SetColor().

Float_t TPostScript::fDXC
protected

Definition at line 42 of file TPostScript.h.

Float_t TPostScript::fDYC
protected

Definition at line 43 of file TPostScript.h.

TString TPostScript::fFileName
protected

Definition at line 89 of file TPostScript.h.

Referenced by Close(), and Open().

Bool_t TPostScript::fFontEmbed
protected

Definition at line 90 of file TPostScript.h.

Referenced by Close(), FontEmbed(), and Open().

Float_t TPostScript::fFX
protected

Definition at line 46 of file TPostScript.h.

Float_t TPostScript::fFY
protected

Definition at line 47 of file TPostScript.h.

Int_t TPostScript::fgLineJoin = 0
staticprotected

Definition at line 92 of file TPostScript.h.

Referenced by SetLineJoin(), and Zone().

Float_t TPostScript::fGreen
protected

Definition at line 60 of file TPostScript.h.

Referenced by DrawPS(), Open(), SetColor(), and Zone().

Int_t TPostScript::fIXzone
protected

Definition at line 67 of file TPostScript.h.

Referenced by Initialize(), and Zone().

Int_t TPostScript::fIYzone
protected

Definition at line 68 of file TPostScript.h.

Referenced by Initialize(), and Zone().

Int_t TPostScript::fLastCellBlue
protected

Definition at line 87 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Int_t TPostScript::fLastCellGreen
protected

Definition at line 86 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Int_t TPostScript::fLastCellRed
protected

Definition at line 85 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Int_t TPostScript::fLineJoin
protected

Definition at line 63 of file TPostScript.h.

Float_t TPostScript::fLineScale
protected

Definition at line 62 of file TPostScript.h.

Referenced by SetLineScale(), and SetLineWidth().

Float_t TPostScript::fMarkerSizeCur
protected

Definition at line 69 of file TPostScript.h.

Referenced by DrawPolyMarker(), Open(), and Zone().

Int_t TPostScript::fMaxLines
protected

Definition at line 84 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Float_t TPostScript::fMaxsize
protected

Definition at line 58 of file TPostScript.h.

Referenced by Initialize().

Int_t TPostScript::fMode
protected

Definition at line 73 of file TPostScript.h.

Referenced by Close(), Initialize(), Open(), and Zone().

Int_t TPostScript::fNbCellLine
protected

Definition at line 83 of file TPostScript.h.

Referenced by CellArrayBegin(), CellArrayEnd(), and CellArrayFill().

Int_t TPostScript::fNbCellW
protected

Definition at line 82 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Int_t TPostScript::fNbinCT
protected

Definition at line 81 of file TPostScript.h.

Referenced by CellArrayBegin(), and CellArrayFill().

Int_t TPostScript::fNBSameColorCell
protected

Definition at line 88 of file TPostScript.h.

Referenced by CellArrayBegin(), CellArrayEnd(), and CellArrayFill().

Int_t TPostScript::fNpages
protected

Definition at line 71 of file TPostScript.h.

Referenced by Close(), Initialize(), and Zone().

Int_t TPostScript::fNXzone
protected

Definition at line 65 of file TPostScript.h.

Referenced by Initialize(), and Zone().

Int_t TPostScript::fNYzone
protected

Definition at line 66 of file TPostScript.h.

Referenced by Initialize(), and Zone().

char TPostScript::fPatterns[32]
protected

Definition at line 80 of file TPostScript.h.

Referenced by Initialize(), and SetFillPatterns().

Bool_t TPostScript::fRange
protected

Definition at line 78 of file TPostScript.h.

Referenced by Open(), and Range().

Float_t TPostScript::fRed
protected

Definition at line 59 of file TPostScript.h.

Referenced by DrawPS(), Open(), SetColor(), and Zone().

Int_t TPostScript::fSave
protected

Definition at line 64 of file TPostScript.h.

Referenced by Close(), NewPage(), Open(), and SaveRestore().

Int_t TPostScript::fType
protected

Definition at line 72 of file TPostScript.h.

Referenced by Initialize(), NewPage(), On(), Open(), and Range().

Float_t TPostScript::fX1v
protected

Definition at line 34 of file TPostScript.h.

Float_t TPostScript::fX1w
protected

Definition at line 38 of file TPostScript.h.

Float_t TPostScript::fX2v
protected

Definition at line 36 of file TPostScript.h.

Float_t TPostScript::fX2w
protected

Definition at line 40 of file TPostScript.h.

Float_t TPostScript::fXC
protected

Definition at line 44 of file TPostScript.h.

Float_t TPostScript::fXsize
protected

Definition at line 56 of file TPostScript.h.

Referenced by CellArrayBegin(), NewPage(), Open(), Range(), Text(), and UtoPS().

Float_t TPostScript::fXVP1
protected

Definition at line 48 of file TPostScript.h.

Referenced by Range().

Float_t TPostScript::fXVP2
protected

Definition at line 49 of file TPostScript.h.

Referenced by Range().

Float_t TPostScript::fXVS1
protected

Definition at line 52 of file TPostScript.h.

Float_t TPostScript::fXVS2
protected

Definition at line 53 of file TPostScript.h.

Float_t TPostScript::fY1v
protected

Definition at line 35 of file TPostScript.h.

Float_t TPostScript::fY1w
protected

Definition at line 39 of file TPostScript.h.

Float_t TPostScript::fY2v
protected

Definition at line 37 of file TPostScript.h.

Float_t TPostScript::fY2w
protected

Definition at line 41 of file TPostScript.h.

Float_t TPostScript::fYC
protected

Definition at line 45 of file TPostScript.h.

Float_t TPostScript::fYsize
protected

Definition at line 57 of file TPostScript.h.

Referenced by CellArrayBegin(), NewPage(), Open(), Range(), Text(), and VtoPS().

Float_t TPostScript::fYVP1
protected

Definition at line 50 of file TPostScript.h.

Referenced by Range().

Float_t TPostScript::fYVP2
protected

Definition at line 51 of file TPostScript.h.

Referenced by Range().

Float_t TPostScript::fYVS1
protected

Definition at line 54 of file TPostScript.h.

Float_t TPostScript::fYVS2
protected

Definition at line 55 of file TPostScript.h.

Bool_t TPostScript::fZone
protected

Definition at line 79 of file TPostScript.h.

Referenced by Open(), and Zone().

Collaboration diagram for TPostScript:
[legend]

The documentation for this class was generated from the following files: