.g postscript configure -landscape yes -maxpect yes .g postscript output myFile.ps
There's another approach you can try. There's an "eps" canvas item in BLT. An "eps" item displays a Tk image that represents some encapsulated PostScript code. You can arbitrarily resize and position the eps item on the canvas. The image is also resized and repositioned.
canvas .c -width 6.75i -height 5.25i -bg white pack .c .c create eps 10 620 -file xy.ps -width 470 -height 400 -anchor sw .c create eps 500 10 -file g1.ps -width 300 -height 300 -anchor nw .c create eps 500 320 -file out.ps -width 300 -height 300 .c create text 20 200 \ -text "This is a text item" \ -fill black \ -anchor w \ -font { Helvetica 24 bold } .c create rectangle 10 10 50 50 -fill blue -outline white .c create rectangle 50 50 150 150 -fill green -outline redBut when you print the canvas (i.e. generate PostScript), instead of the image, the encapsulated PostScript is used. The embedded EPS is scaled and translated accordingly. And since the PostScript is transformed, the resolution is much better (device independent). You can still use other canvas item for annotations, company logos, etc. In short, your canvas code is your page description. It's easy to tile graphs and mark them up.
There are different, less well documented approaches to printing under Windows at BLT - graph - printing from Windows But you can also print Postscript from Windows.To get a list of available printers, you can use the "names" operation.
# Get a list of printer names set printerList [printer names] # Pick the first printer set printerName [linex $printerList 0]You open a printer using the "open" operation.
# Open the printer set pid [printer open $printerName]It returns a printer ID that represents the open printer. It's used with other printer commands. For example to send the graph's PostScript output to a PS printer you can do the following.
graph .g ... # Save the graph's PostScript in a variable set output [.g postscript output] # Open a printer and write the output to it set pid [printer open $printerName] printer write $pid $output printer close $pidThe raw PostScript is sent to printer using the "write" operation. The printer is then closed using the "close" operation.You can access and change printer settings with the "getattr" and "setattr" operations. The "getattr" operation collects the current attributes of the printer. It fill the array variable (given as the last argument) with different values representing the printer state. You can then change the printer settings with the "setattr" operation.
# Get the printer's current settings printer getattr $pid info puts "Orientation is $info(Orientation)" puts "Paper size is $info(PaperSize)" set info(PaperSize) Letter set info(Orientation) Landscape printer setattr $pid infoTo find out the values of valid settings, you can use the "enum" operation. You can query settings for "paper", "quality", "bin", "orientation", "color", "duplex", or "ttoption".
puts "valid Orientation settings are [printer enum orientation]"