APPENDIX R:

PRINTSCREEN BACKGROUND INFO

PRINTSCREEN PROCESSES

All these programs reside in /usr/fox/wp/bin and they provide usage help when invoked with argument "-help".

Printing with CTL-Psc seems not to require the jettool process. No beeping but printscreen ok.


jettool

Started by /usr/fox/exten/fox_monitor /usr/fox/exten/foxboro.local, as:

     /usr/fox/wp/bin/jettool -Wp 2000 1000 -sig

Top level process for printscreen operations. Detects click on I/A Sys / PrintScreen.
If not running (or corrupted) you will not hear the one-two beeps.
Spawns: r2grab, foxwd, then either: foxpr (non-PS prtr, PCL5), or xwd2ps (PS prtrs).

r2grab

WP50 printscreen key handler. The r2grab process will pass arguments back to the jettool process. This process grabs a copy of the current window selected for the printscreen to /usr/tmp/jettool.xxxx (temporary buffering).

foxwd

Foxboro process used to dump a an X-window display into a dump file. The foxwd process calls the X-window utility “xwd”. The foxwd process will produce a dump file in: /usr/tmp called jettool.a000pl


foxpr

Foxboro process used to print the output of an X- window dump file. foxpr calls the X-window utility “xpr” and uses the dump file created by the foxwd process. The dump file will be formatted for output to the proper type of printer. References: /etc/printerscreen.options, and /etc/printerscreen.printers

xwd2ps

Converts and X-window raster file to a Postscript file. The jettool process will spawn a process which looks like the following to print the screen.

/usr/fox/wp/bin/xwd2ps –D /usr/tmp/jettool.a000pl | lp –d LP04
Note: A new xwd2ps file is required when using the Lexmark printer.


PRINTING FULLSCREEN
CAR : 8462
Subject: alarm manager print screen

Full screen Display Manager and full screen Alarm manager.(not re-sizable)
When the CAD is present on the screen (above the display manager) it should
be possible to do a print screen of the CAD.

For that we implemented a button on the CAD configured with:

send_to_dm -dm$GCLBUG /usr/fox/alarms/print
Contents of the script /usr/fox/alarms/print:
dmemd script
dmemd psc

We get a print screen but the top of CAD including the first alarm line is
hidden by the display manager menu bar.(see copy attached)

The print screen is working if we use the Eng keyboard (CTL Print Screen)
but the Eng keyboard will not be available for the operator on site.

Can you check what is the problem or an other way to do the print screen
from the display..


Problem Workaround:

To print the entire screen surface of a given CRT to a selected Postscript
printer it is necessary to write a script which selects the root window on
that display surface, does a screen capture, converts the screen capture
to Postscript and sends the image to a selected printer. It is then
necessary to change the button configured to do the screen print to call
the script. The following is a script named "printscreen.sh" that has been
tested on a dual-headed AW51 at I/A version 4.2.


#! /bin/sh
#
# This script does a printscreen of entire screen to a Postscript printer
# on a Sun workstation.
#
# Usage:  printscreen  
#
# Example:  printscreen 1 LP02
#
# Make sure that there are two arguments.
if [ "$#" -ne 2 ]
then
   echo "$0 given incorrect number of arguments"
   exit 0
fi
# Make sure the screen number is valid.
if [ "$1" -ne "0" -a "$1" -ne "1" ]
then
   echo "$0 given invalid screen number: $1"
   exit 0
fi
# Capture the screen, convert it to Postscript and send it to the printer.
# The "lp -d" syntax assumes that the Postscript printer is connected to
# a Sun workstation (not a COMM processor).
( /usr/fox/wp/bin/foxwd -display :0.$1 -root  )|( /usr/fox/wp/bin/xwd2ps -D )| lp -d $2

Assuming that the name of the script is "prinscreen.sh", that the script
is located in /usr/fox/wp/bin and that it has been made executable using
the command line command "chmod +x printscreen.sh", the customer should 
change their script from "dmcmd psc" to:

dmcmd run /usr/fox/wp/bin/printscreen.sh  

where 1st argument is either "0" or "1" and  2nd one is the valid name of a
Postscript printer connected to a 51 Series workstation. For example, to
send a printscreen of the second screen to LP02, the command would look
like:

dmcmd run /usr/fox/wp/bin/printscreen.sh 1 LP02

Problem Action:

Since the printscreen dmcmd comand (dmcmd psc) is designed to print only
the active screen (as opposed to the entire display surface), it works as
designed. If the customer wishes to print the entire display surface, the
sample script shown in the workaround, above, demonstrates the system
commands required to do so.

1