<TITLE>canvasprintbox - Create and manipulate a canvas print box widget</TITLE>
<H1>canvasprintbox - Create and manipulate a canvas print box widget</H1>

</pre><H2>SYNOPSIS</H2>
<B>canvasprintbox<I> <I>pathName </I>?<I>options</I>?
</pre><H2>INHERITANCE</H2>
itk::Widget &lt;- Canvasprintbox
</pre><H2>STANDARD OPTIONS</H2>
<P>
<table cellpadding=5>
<td valign=top>
<B>activeBackground</B><br>
<B>foreground</B><br>
<B>insertBackground</B><br>
<B>insertWidth</B><br>
<B>selectBackground</B><br>
</td>
<td valign=top>
<B>background</B><br>
<B>highlightBackground</B><br>
<B>insertBorderWidth</B><br>
<B>relief</B><br>
<B>selectBorderWidth</B><br>
</td>
<td valign=top>
<B>borderWidth</B><br>
<B>highlightColor</B><br>
<B>insertOffTime</B><br>
<B>repeatDelay</B><br>
<B>selectForeground</B><br>
</td>
<td valign=top>
<B>cursor</B><br>
<B>highlightThickness</B><br>
<B>insertOnTime</B><br>
<B>repeatInterval</B><br>
</td>
</table>
<P>
See the <A HREF="http://www.sco.com/Technology/tcl/man/tk_man/options.n.html"> "options" </A> manual entry for details on the standard options.
</pre><H2>ASSOCIATED OPTIONS</H2>
<UL>
</UL>
<P>
</pre><H2>WIDGET-SPECIFIC OPTIONS</H2>
<P>
<pre>
Name:                   <B>filename</B>
Class:                  <B>FileName</B>
Command-Line Switch:	<B>-filename</B>
</pre>
<UL>
The file to write the postscript output to (Only when output
is set to "file"). If posterizing is turned on and <B>hpagecnt</B>
and/or <B>vpagecnt</B> is more than 1, x.y is appended to the filename
where x is the horizontal page number and y the vertical page number.
</UL>
<P>
<pre>
Name:                   <B>hpagecnt</B>
Class:                  <B>PageCnt</B>
Command-Line Switch:	<B>-hpagecnt</B>
</pre>
<UL>
Is used in combination with <B>posterize</B> to determine over
how many pages the output should be distributed. This
attribute specifies how many pages should be used horizontaly.
Any change to this attribute will automatically update the "stamp".
Defaults to 1.
</UL>
<P>
<pre>
Name:                   <B>orient</B>
Class:                  <B>Orient</B>
Command-Line Switch:	<B>-orient</B>
</pre>
<UL>
Determines the orientation of the output to the printer (or file).
It can take the value "portrait" or "landscape" (default). Changes
to this attribute will be reflected immediately in the "stamp".
Defaults to "landscape" but will be changed automaticaly to the value
deemed appropiate for the current canvas. Setting this attribute
when the canvasprintbox is first constructed (instead of using the
"configure" method) will turn off the auto adjustment of this attribute.
</UL>
<P>
<pre>
Name:                   <B>output</B>
Class:                  <B>Output</B>
Command-Line Switch:	<B>-output</B>
</pre>
<UL>
Specifies where the postscript output should go: to the printer
or to a file. Can take on the values "printer" or "file".
The corresponding entry-widget will reflect the contents of
either the <B>printcmd</B> attribute or the <B>filename</B> attribute.
Defaults to "printer".
</UL>
<P>
<pre>
Name:                   <B>pageSize</B>
Class:                  <B>PageSize</B>
Command-Line Switch:	<B>-pagesize</B>
</pre>
<UL>
The pagesize the printer supports. Changes to this attribute
will be reflected immediately in the "stamp".
Defaults to "a4".
</UL>
<P>
<pre>
Name:                   <B>posterize</B>
Class:                  <B>Posterize</B>
Command-Line Switch:	<B>-posterize</B>
</pre>
<UL>
Indicates if posterizing is turned on or not. Posterizing
the output means that it is possible to distribute the
output over more than one page. This way it is possible to
print a canvas/region which is larger than the specified
pagesize without stretching. If used in combination with
stretching it can be used to "blow up" the contents of a
canvas to as large as size as you want (See attributes:
hpagecnt and vpagecnt). Any change to this attribute will
automatically update the "stamp".
Defaults to 0.
</UL>
<P>
<pre>
Name:                   <B>printCmd</B>
Class:                  <B>PrintCmd</B>
Command-Line Switch:	<B>-printcmd</B>
</pre>
<UL>
The command to execute when printing the postscript output.
The command will get the postscript directed to its standard
input (Only when output is set to "printer").
Defaults to "lpr".
</UL>
<P>
<pre>
Name:                   <B>printRegion</B>
Class:                  <B>PrintRegion</B>
Command-Line Switch:	<B>-printregion</B>
</pre>
<UL>
A list of four coordinates specifying which part of the canvas to print.
An empty list means that the canvas' entire <B>scrollregion</B> should be
printed. Any change to this attribute will automatically update the "stamp".
Defaults to an empty list.
</UL>
<P>
<pre>
Name:                   <B>stretch</B>
Class:                  <B>Stretch</B>
Command-Line Switch:	<B>-stretch</B>
</pre>
<UL>
Determines if the output should be stretched to fill the
page (as defined by the attribute pagesize) as large as
possible. The aspect-ratio of the output will be retained
and the output will never fall outside of the boundaries
of the page.
Defaults to 0 but will be changed automaticaly to the value
deemed appropiate for the current canvas. Setting this attribute
when the canvasprintbox is first constructed (instead of using the
"configure" method) will turn off the auto adjustment of this attribute.
</UL>
<P>
<pre>
Name:                   <B>vPageCnt</B>
Class:                  <B>PageCnt</B>
Command-Line Switch:	<B>-vpagecnt</B>
</pre>
<UL>
Is used in combination with "posterize" to determine over
how many pages the output should be distributed. This
attribute specifies how many pages should be used verticaly.
Any change to this attribute will automatically update the "stamp".
Defaults to 1.
</UL>
<P>
</pre><HR>

</pre><H2>DESCRIPTION</H2>
<P>
Implements a print box for printing the contents of a canvas widget
to a printer or a file. It is possible to specify page orientation, the
number of pages to print the image on and if the output should be
stretched to fit the page. Options exist to control the appearance and
actions of the widget.

</pre><H2>METHODS</H2>
<P>
The <B>canvasprintbox</B> command creates a new Tcl command whose
name is <I>pathName</I>.  This
command may be used to invoke various
operations on the widget.  It has the following general form:
<pre>
<I>pathName option </I>?<I>arg arg ...</I>?
</pre>
<I>Option</I> and the <I>arg</I>s
determine the exact behavior of the command.  The following
commands are possible for canvasprintbox widgets:

</pre><H2>WIDGET-SPECIFIC METHODS</H2>
<DL>
<DT> <I>pathName <B>cget</B> <I>option</I>
</I></B>
<DD> Returns the current value of the configuration option given
by <I>option</I>.
<I>Option</I> may have any of the values accepted by the <B>canvasprintbox</B>
command.
</DL>
<DL>
<DT> <I>pathName</I> <B>configure</B> ?<I>option</I>? ?<I>value option value ...</I>?
</I></B>
<DD> Query or modify the configuration options of the widget.
If no <I>option</I> is specified, returns a list describing all of
the available options for <I>pathName</I> (see <B>Tk_ConfigureInfo</B> for
information on the format of this list).  If <I>option</I> is specified
with no <I>value</I>, then the command returns a list describing the
one named option (this list will be identical to the corresponding
sublist of the value returned if no <I>option</I> is specified).  If
one or more <I>option-value</I> pairs are specified, then the command
modifies the given widget option(s) to have the given value(s);  in
this case the command returns an empty string.
<I>Option</I> may have any of the values accepted by the <B>canvasprintbox</B>
command.
</DL>
<DL>
<DT> <I>pathName</I> <B>getoutput</B>
</I></B>
<DD> Returns the value of the <B>printercmd</B> or <B>filename</B> option
depending on the current setting of <B>output</B>.
</DL>
<DL>
<DT> <I>pathName</I> <B>print</B>
</I></B>
<DD> Perfrom the actual printing of the canvas using the current settings of
all the attributes. Returns a boolean indicating wether the printing was
successful or not.
</DL>
<DL>
<DT> <I>pathName</I> <B>refresh</B>
</I></B>
<DD> Retrieves the current value for all edit fields and updates
the stamp accordingly. Is useful for Apply-buttons.
</DL>
<DL>
<DT> <I>pathName</I> <B>setcanvas</B> <I>canvas</I>
</I></B>
<DD> This is used to set the <I>canvas</I> that has to be printed.
A stamp-sized copy will automatically be drawn to show how the
output would look with the current settings.
</DL>
<DL>
<DT> <I>pathName <B>stop</B>
</I></B>
<DD> Stops the drawing of the "stamp". I'm currently unable to detect
when a Canvasprintbox gets destroyed or withdrawn. It's therefore
advised that you perform a stop before you do something like that.
</DL>
</pre><H2>COMPONENTS</H2>
<P>
<pre>
Name:                   <B>prtflentry</B>
Class:                  <B>Entry</B>
</pre>
<UL>
The prtflentry component is the entry field for user input of the
<B>filename</B> or <B>printer</B> command (depending on the value of
<B>output</B>).
</UL>
<P>
<pre>
Name:                   <B>hpcnt</B>
Class:                  <B>Entry</B>
</pre>
<UL>
The hpcnt component is the entry field for user input of the number of
pages to use horizontaly when <B>posterize</B> is turned on.
</UL>
</table>
<pre>
Name:                   <B>vpcnt</B>
Class:                  <B>Entry</B>
</pre>
<UL>
The vpcnt component is the entry field for user input of the number of
pages to use verticaly when <B>posterize</B> is turned on.
</UL>
</table>

</pre><H2>EXAMPLE</H2>
<pre>
canvasprintbox .fsb -orient landscape -stretch 1
pack .fsb -padx 10 -pady 10 -fill both -expand yes 
</pre>
</pre><H2>AUTHOR</H2>
Tako Schotanus
</pre><H2>KEYWORDS</H2>
canvasprintbox, widget
